Sử dụng $pull kết hợp update để xóa phần tử khỏi mảng theo điều kiện. Tạo collection:
> db.demo198.insertOne({"List":{"Values":[10,20,30,30,70,80,90]}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3c224503d395bdc21346df") }
> db.demo198.insertOne({"List":{"Values":[56,978,56,34,23,34]}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3c225403d395bdc21346e0") }
> db.demo198.insertOne({"List":{"Values":[21,12,14,15,34,56]}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3c226603d395bdc21346e1") }
Hiển thị tài liệu:
> db.demo198.find();
Kết quả:
Xóa tất cả giá trị < 40 khỏi mảng Values trong TẤT CẢ tài liệu (multi: true):
> db.demo198.update( {}, { "$pull": { "List.Values": { "$lt": 40 } } }, { "multi": true } ); WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 3 })Kết quả sau khi xóa:
> db.demo198.find();Giải thích:
$pullxóa tất cả phần tử khớp điều kiện trong mảng.$lt: 40là điều kiện "nhỏ hơn 40".multi: trueáp dụng cho nhiều tài liệu.