Computer >> Máy Tính >  >> Lập trình >> MongoDB

Cách hiệu quả để xóa tất cả các mục nhập khỏi MongoDB?

Nếu bạn cố gắng sử dụng phương thức drop (), thì nó sẽ xóa tất cả thông tin về bộ sưu tập. Lập chỉ mục rất nhanh. Tuy nhiên, nếu bạn sử dụng phương thức remove (), thì phương thức này sẽ xóa tất cả các bản ghi nhưng vẫn giữ bộ sưu tập và chỉ mục.

Hãy để chúng tôi kiểm tra với sự trợ giúp của ví dụ.

Sử dụng drop ()

Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

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

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

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.dropWorkingDemo.find();

Điều này sẽ tạo ra kết quả sau -

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

Bây giờ, tôi sẽ sử dụng drop () -

> db.dropWorkingDemo.drop();

Điều này sẽ tạo ra kết quả sau -

True

Hãy để chúng tôi kiểm tra các chỉ mục có xuất hiện sau khi sử dụng phương thức drop () hay không -

> db.dropWorkingDemo.getIndexes();

Điều này sẽ tạo ra kết quả sau -

[ ]

Chỉ mục không có.

Sử dụng remove ()

Bây giờ chúng ta sẽ kiểm tra phương thức remove (). Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

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

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.removeDemo.find();

Điều này sẽ tạo ra kết quả sau -

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

Hãy để chúng tôi sử dụng remove () -

> db.removeDemo.remove({});
WriteResult({ "nRemoved" : 1 })

Sau khi sử dụng phương thức remove (), hãy để chúng tôi kiểm tra các chỉ mục có hiện diện hay không -

> db.removeDemo.getIndexes();

Điều này sẽ tạo ra kết quả sau -

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

Có, chỉ mục hiện có.