Sử dụng toán tử $pull để xóa phần tử khớp điều kiện khỏi mảng.
Tạo collection
> db.pullAnArrayElementDemo.insertOne({
"StudentDetails": [
{ "StudentFirstName": "Chris", "StudentScore": 56 },
{ "StudentFirstName": "Robert", "StudentScore": 59 }
]
});
{ "acknowledged": true, "insertedId": ObjectId("5cd3b55bedc6604c74817cd5") }
Hiển thị tài liệu
> db.pullAnArrayElementDemo.find().pretty();
Xóa phần tử có StudentFirstName = "Chris"
> db.pullAnArrayElementDemo.update(
{},
{ $pull: { 'StudentDetails': { 'StudentFirstName': 'Chris' } } }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
Kết quả
> db.pullAnArrayElementDemo.find().pretty();
Kết quả (chỉ còn Robert):
{
"_id": ObjectId("5cd3b55bedc6604c74817cd5"),
"StudentDetails": [
{ "StudentFirstName": "Robert", "StudentScore": 59 }
]
}
Giải thích: $pull xóa tất cả phần tử trong mảng khớp điều kiện. Nếu chỉ muốn xóa một phần tử, dùng $pull với điều kiện đủ cụ thể hoặc $pop (xóa đầu/cuối).