Để xóa chính xác một tài liệu trong MongoDB, bạn sử dụng phương thức deleteOne() (hoặc remove() cũ) với filter chỉ định duy nhất tài liệu đó (thường dùng _id). Điều này đảm bảo chỉ xóa một bản ghi đơn lẻ.
1. Tạo bộ sưu tập và chèn dữ liệu
> db.demo56.insertOne({ "Name": "Chris" });
> db.demo56.insertOne({ "Name": "David" });
> db.demo56.insertOne({ "Name": "Bob" });
2. Xem dữ liệu ban đầu
> db.demo56.find();
Kết quả:
{ "_id": ObjectId("5e272e0bcfb11e5c34d89917"), "Name": "Chris" }
{ "_id": ObjectId("5e272e10cfb11e5c34d89918"), "Name": "David" }
{ "_id": ObjectId("5e272e13cfb11e5c34d89919"), "Name": "Bob" }
3. Xóa tài liệu có _id cụ thể (David)
> db.demo56.deleteOne({ _id: ObjectId("5e272e10cfb11e5c34d89918") });
{ "acknowledged": true, "deletedCount": 1 }
Lưu ý: remove() đã deprecated từ MongoDB 3.2. Dùng:
deleteOne(filter): Xóa tối đa 1 tài liệu khớp.deleteMany(filter): Xóa tất cả tài liệu khớp.
4. Kết quả sau xóa
> db.demo56.find();
Kết quả:
{ "_id": ObjectId("5e272e0bcfb11e5c34d89917"), "Name": "Chris" }
{ "_id": ObjectId("5e272e13cfb11e5c34d89919"), "Name": "Bob" }
Best practice: Luôn xóa bằng _id để đảm bảo chính xác 100%, tránh xóa nhầm khi filter trùng lặp.