Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Truy vấn MongoDB xóa một tài liệu cụ thể

Để 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.