Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB에서 deleteOne()과 findOneAndDelete() 작업의 차이점은 무엇입니까?


findOneAndDelete()는 필터 및 정렬 기준에 따라 컬렉션에서 단일 문서를 삭제하고 삭제된 문서를 반환합니다.

deleteOne()은 컬렉션에서 단일 문서를 제거합니다.

예제를 보고 문서로 컬렉션을 생성해 보겠습니다. −

> db.demo448.insertOne({"Name":"Chris","Age":21});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7a291cbbc41e36cc3caeca")
}
> db.demo448.insertOne({"Name":"David","Age":23});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7a2926bbc41e36cc3caecb")
}
> db.demo448.insertOne({"Name":"Bob","Age":22});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7a2930bbc41e36cc3caecc")
}

find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -

> db.demo448.find();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : ObjectId("5e7a291cbbc41e36cc3caeca"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e7a2926bbc41e36cc3caecb"), "Name" : "David", "Age" : 23 }
{ "_id" : ObjectId("5e7a2930bbc41e36cc3caecc"), "Name" : "Bob", "Age" : 22 }

다음은 deleteOne() −

을 구현하는 쿼리입니다.
> db.demo448.deleteOne({_id:ObjectId("5e7a2926bbc41e36cc3caecb")});

이것은 다음과 같은 출력을 생성합니다 -

{ "acknowledged" : true, "deletedCount" : 1 }

find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -

> db.demo448.find();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : ObjectId("5e7a291cbbc41e36cc3caeca"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e7a2930bbc41e36cc3caecc"), "Name" : "Bob", "Age" : 22 }

다음은 findOneAndDelete() −

를 구현하는 쿼리입니다.
> db.demo448.findOneAndDelete({"_id":ObjectId("5e7a2930bbc41e36cc3caecc")});

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : ObjectId("5e7a2930bbc41e36cc3caecc"), "Name" : "Bob", "Age" : 22 }

find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -

> db.demo448.find();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : ObjectId("5e7a291cbbc41e36cc3caeca"), "Name" : "Chris", "Age" : 21 }