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

Xóa phần tử mảng (là document) trong MongoDB

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).