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

MongoDB에서 모든 항목을 제거하는 효율적인 방법은 무엇입니까?

<시간/>

drop() 메서드를 사용하려고 하면 컬렉션에 대한 모든 정보가 삭제됩니다. 인덱싱이 빠릅니다. 그러나 remove() 메서드를 사용하면 모든 레코드를 제거하지만 컬렉션과 인덱스는 유지합니다.

예시를 통해 확인해보자.

drop() 사용

먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.dropWorkingDemo.createIndex({"FirstName":1});
{
   "createdCollectionAutomatically" : true,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}

> db.dropWorkingDemo.insertOne({"FirstName":"John"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cdd8742bf3115999ed511e9")
}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다. -

> db.dropWorkingDemo.find();

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

{ "_id" : ObjectId("5cdd8742bf3115999ed511e9"), "FirstName" : "John" }

이제 drop() −

를 사용할 것입니다.
> db.dropWorkingDemo.drop();

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

True

drop() 메소드를 사용한 후 인덱스가 존재하는지 확인해보자 -

> db.dropWorkingDemo.getIndexes();

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

[ ]

인덱스가 없습니다.

remove() 사용

이제 remove() 메서드를 확인할 것입니다. 먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.removeDemo.createIndex({"FirstName":1});
{
   "createdCollectionAutomatically" : true,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}
> db.removeDemo.insertOne({"FirstName":"John"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cdd8868bf3115999ed511ea")
}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다. -

> db.removeDemo.find();

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

{ "_id" : ObjectId("5cdd8868bf3115999ed511ea"), "FirstName" : "John" }

remove() −

를 사용합시다.
> db.removeDemo.remove({});
WriteResult({ "nRemoved" : 1 })

remove() 메소드를 사용한 후 인덱스가 존재하는지 확인하자 -

> db.removeDemo.getIndexes();

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

[
   {
      "v" : 2,
      "key" : {
         "_id" : 1
      },
      "name" : "_id_",
      "ns" : "test.removeDemo"
   },
   {
      "v" : 2,
      "key" : {
         "FirstName" : 1
      },
      "name" : "FirstName_1",
      "ns" : "test.removeDemo"
   }
]

예, 색인이 있습니다.