MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB - Xóa tài liệu

Trong MongoDB, bạn có thể xóa tài liệu bằng một trong ba phương pháp.

MongoDB cung cấp ba phương pháp để xóa tài liệu:

  • db.collection.deleteOne()
  • db.collection.deleteMany()
  • db.collection.remove()

db.collection.deleteOne() Phương pháp

db.collection.deleteOne() chỉ xóa một tài liệu, ngay cả khi nhiều tài liệu phù hợp với tiêu chí.

Đây là một ví dụ về db.collection.deleteOne() phương pháp xóa một tài liệu.

Đầu tiên, hãy chạy một truy vấn trả về nhiều kết quả:

db.artists.find( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )

Kết quả:

{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }

Được, vì vậy chúng tôi biết có ba tài liệu phù hợp với tiêu chí đó.

Bây giờ, hãy sử dụng cùng một tiêu chí lọc cho db.collection.deleteOne() của chúng ta phương pháp:

db.artists.deleteOne( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )

Thông báo kết quả:

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

Vì vậy, chỉ có một tài liệu bị xóa, mặc dù ba tài liệu phù hợp với tiêu chí.

Hãy chạy find() truy vấn lại để xem tài liệu nào còn lại:

db.artists.find( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )

Kết quả:

{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }

db.collection.deleteMany() Phương pháp

db.collection.deleteMany() phương pháp xóa tất cả các tài liệu phù hợp với tiêu chí.

Vì vậy, hãy chạy db.collection.deleteMany() với các tiêu chí giống hệt như ví dụ trước của chúng tôi. Hãy nhớ rằng, hai bản ghi vẫn còn. Hãy xem nếu db.collection.deleteMany() xóa cả hai:

db.artists.deleteMany( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )

Thông báo kết quả:

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

Vì vậy, hai bản ghi còn lại đã bị xóa.

db.collection.remove() Phương pháp

db.collection.remove() phương pháp xóa một tài liệu hoặc tất cả các tài liệu phù hợp với tiêu chí đã chỉ định.

Ở đây, chúng tôi xóa tất cả các tài liệu có tên nghệ sĩ là "AC / DC".

db.artists.remove( { artistname: "AC/DC" } )

Kết quả:

WriteResult({ "nRemoved" : 1 })

Trong trường hợp này, chỉ có một AC / DC :)

justOne Tùy chọn

Bạn có thể sử dụng justOne để giới hạn thao tác loại bỏ chỉ với một tài liệu (giống như sử dụng db.collection.deleteOne() ).

Đây là một ví dụ.

Đầu tiên, hãy chạy một truy vấn trả về nhiều tài liệu:

db.musicians.find( { born: { $lt: 1950 } } )

Kết quả:

{ "_id" : 2, "name" : "Ian Paice", "instrument" : "Drums", "born" : 1948 }
{ "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 }
{ "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }

Bây giờ chúng ta sẽ xóa một trong những bản ghi đó bằng cách sử dụng justOne lựa chọn. Một lần nữa, chúng tôi sẽ sử dụng cùng một tiêu chí lọc chính xác:

db.musicians.remove( { born: { $lt: 1950 } }, { justOne: 1 } )

Thông báo kết quả:

WriteResult({ "nRemoved" : 1 })

Bây giờ, hãy chạy cùng một truy vấn để xem tài liệu nào còn lại:

db.musicians.find( { born: { $lt: 1950 } } )

Kết quả:

{ "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 }
{ "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }

Xóa tất cả Tài liệu trong Bộ sưu tập

Bạn có thể xóa tất cả tài liệu trong bộ sưu tập chỉ bằng cách bỏ qua bất kỳ tiêu chí lọc nào.

Hãy xóa tất cả tài liệu trong artist bộ sưu tập:

db.artists.remove( {} )

Thông báo kết quả:

WriteResult({ "nRemoved" : 8 })

Nếu bạn nhận được lỗi :loại bỏ cần truy vấn lỗi, hãy kiểm tra xem bạn có quên bao gồm dấu ngoặc nhọn hay không. Bạn vẫn cần bao gồm những thứ này.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ hoặc truy vấn

  2. Kết hợp hai truy vấn OR với AND trong Mongoose

  3. Tạo Superuser trong mongo

  4. Mongoid:tìm qua Mảng id

  5. Tạo một cụm cơ sở dữ liệu trong đám mây với MongoDB Atlas