Để xóa tất cả tài liệu trong một collection, MongoDB cung cấp phương thức remove({}) với bộ lọc rỗng. Tuy nhiên, từ phiên bản 3.2+, phương thức deleteMany({}) được khuyến nghị hơn vì cú pháp rõ ràng và nhất quán hơn.
Dữ liệu mẫu
> db.demo309.insertOne({ "details":[ { "Name":"Chris" }, { "Name":"David" }, { "Name":"Adam" } ] } );
{ "acknowledged" : true, "insertedId" : ObjectId("5e4eb71af8647eb59e562040") }
> db.demo309.insertOne({ "details":[ { "Name":"David" }, { "Name":"Mike" }, { "Name":"Bob" } ] } );
{ "acknowledged" : true, "insertedId" : ObjectId("5e4eb7cbf8647eb59e562041") }
Xem dữ liệu trước khi xóa
> db.demo309.find();
{ "_id" : ObjectId("5e4eb71af8647eb59e562040"), "details" : [ { "Name" : "Chris" }, { "Name" : "David" }, { "Name" : "Adam" } ] }
{ "_id" : ObjectId("5e4eb7cbf8647eb59e562041"), "details" : [ { "Name" : "David" }, { "Name" : "Mike" }, { "Name" : "Bob" } ] }
Xóa tất cả tài liệu
> db.demo309.remove({});
WriteResult({ "nRemoved" : 2 })
Khuyến nghị hiện đại: Sử dụng db.demo309.deleteMany({}) để xóa toàn bộ tài liệu. Cả hai cách đều trả về số lượng tài liệu đã xóa. Lưu ý: remove() không xóa các index, collection vẫn tồn tại. Nếu muốn xóa hẳn collection, dùng db.demo309.drop().