Toán tử $pull xóa tất cả phần tử khớp điều kiện khỏi mảng. Khác với $pop (xóa đầu/cuối) hoặc $pullAll (xóa theo danh sách giá trị chính xác).
Dữ liệu mẫu
> db.demo224.insertOne({"ListOfTechnology":["Spring","Hibernate","Java"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3ee6d103d395bdc2134733") }
> db.demo224.insertOne({"ListOfTechnology":["Groovy"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3ee6ec03d395bdc2134734") }
Xóa "Java" khỏi mảng
> db.demo224.update(
{_id:ObjectId("5e3ee6d103d395bdc2134733")},
{$pull:{"ListOfTechnology":"Java"}}
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Kết quả
{ "_id" : ObjectId("5e3ee6d103d395bdc2134733"), "ListOfTechnology" : [ "Spring", "Hibernate" ] }
{ "_id" : ObjectId("5e3ee6ec03d395bdc2134734"), "ListOfTechnology" : [ "Groovy" ] }
Các toán tử xóa mảng:
| Toán tử | Hành động |
|---|---|
$pull | Xóa TẤT CẢ phần tử khớp điều kiện (query/value) |
$pullAll | Xóa phần tử có giá trị trong mảng cho trước (exact match) |
$pop | Xóa 1 phần tử: 1=cuối, -1=đầu |
$unset + $pull | Set null rồi pull null (cũ) |