Trong MongoDB, db.collection.remove()
phương pháp xóa tài liệu khỏi bộ sưu tập. Nói cách khác, nó sẽ xóa chúng.
Bộ sưu tập collection
một phần là tên của bộ sưu tập để xóa tài liệu khỏi đó.
Bạn có thể xóa tất cả tài liệu, một số tài liệu hoặc một tài liệu duy nhất theo yêu cầu.
Xóa tất cả tài liệu
Trong ví dụ này, chúng tôi xóa tất cả tài liệu khỏi bộ sưu tập có tên là employees
:
db.employees.remove({})
Kết quả:
WriteResult({ "nRemoved" : 5 })
Kết quả cho chúng tôi thấy rằng năm tài liệu đã bị xóa.
Xóa các tài liệu đã chọn
Trong ví dụ này, chúng tôi chỉ xóa một số tài liệu.
Trước tiên, hãy điền lại bộ sưu tập nhân viên của chúng tôi:
db.employees.insertMany([
{ _id: 1, name: "Sandy", salary: 55000 },
{ _id: 2, name: "Sarah", salary: 128000 },
{ _id: 3, name: "Fritz", salary: 25000 },
{ _id: 4, name: "Chris", salary: 45000 },
{ _id: 5, name: "Beck", salary: 82000 }
])
Bây giờ, hãy xóa tất cả những nhân viên kiếm được hơn 80.000 mỗi năm.
db.employees.remove({ "salary": { $gt: 80000 } })
Kết quả:
WriteResult({ "nRemoved" : 2 })
Lần này chỉ có hai tài liệu bị xóa.
Hãy xem bộ sưu tập.
db.employees.find()
Kết quả:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 }
Đúng như dự đoán, hai người có mức lương cao nhất đã rời công ty.
Xóa một tài liệu
Có một số cách để xóa một tài liệu khỏi bộ sưu tập. Phương pháp bạn sử dụng sẽ phụ thuộc vào những gì bạn cần làm.
Bạn có thể:
- Xóa một tài liệu cụ thể
- Sử dụng
justOne
tham số
Xóa một tài liệu cụ thể
Nếu bạn cần xóa một tài liệu cụ thể, bạn có thể chỉ định _id
của tài liệu đó giá trị để loại bỏ tài liệu cụ thể đó.
Vì vậy, nếu chúng tôi muốn xóa say, Fritz khỏi bộ sưu tập ở trên, chúng tôi có thể chỉ định _id
của anh ấy giá trị của 3
. Như thế này:
db.employees.remove({ "_id": 3 })
Kết quả:
WriteResult({ "nRemoved" : 1 })
Và hãy kiểm tra lại bộ sưu tập:
db.employees.find()
Kết quả:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 }
Đúng như dự đoán, Fritz giờ đã biến mất.
Sử dụng justOne
Tham số
Ngoài ra, bạn có thể sử dụng justOne
để giới hạn việc loại bỏ chỉ một tài liệu. Thao tác này sẽ xóa tài liệu đầu tiên phù hợp với tiêu chí xóa.
Để chứng minh quan điểm này rõ ràng nhất có thể, hãy xóa tất cả các tài liệu còn lại khỏi bộ sưu tập và sau đó sao chép lại:
db.employees.remove({})
db.employees.insertMany([
{ _id: 1, name: "Sandy", salary: 55000 },
{ _id: 2, name: "Sarah", salary: 128000 },
{ _id: 3, name: "Fritz", salary: 25000 },
{ _id: 4, name: "Chris", salary: 45000 },
{ _id: 5, name: "Beck", salary: 82000 }
])
OK, vì vậy chúng tôi biết rằng có năm tài liệu trong bộ sưu tập của chúng tôi.
Bây giờ hãy sử dụng justOne
để xóa một tài liệu.
db.employees.remove({}, "justOne: true")
Kết quả:
WriteResult({ "nRemoved" : 1 })
Và hãy kiểm tra bộ sưu tập để xem tài liệu nào đã bị xóa.
db.employees.find()
Kết quả:
{ "_id" : 2, "name" : "Sarah", "salary" : 128000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Như mong đợi, tài liệu đầu tiên đã bị xóa.
justOne
tham số cũng có một cú pháp khác. Bạn cũng có thể sử dụng nó bên trong tài liệu. Bạn sẽ cần làm điều này nếu bạn định chuyển các đối số khác cho phương thức.
Đây là một ví dụ.
db.employees.remove(
{},
{
justOne: true,
writeConcern: { w: "majority", wtimeout: 3000 },
collation: { locale: "de", strength: 1 }
}
)
Kết quả:
WriteResult({ "nRemoved" : 1 })
Và hãy cùng nhìn lại bộ sưu tập
db.employees.find()
Kết quả:
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Như mong đợi, tài liệu tiếp theo đã bị xóa.
Thông tin thêm
Xem tài liệu MongoDB để biết thêm thông tin.