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

Cách xóa dữ liệu cụ thể trong document MongoDB

Xóa trường dữ liệu với toán tử $unset

Để xóa một trường cụ thể khỏi document trong MongoDB, bạn sử dụng toán tử $unset. Toán tử này loại bỏ hoàn toàn trường khỏi document thay vì chỉ đặt giá trị null.

Ví dụ minh họa

Trước tiên, tạo một collection với document chứa mảng lồng nhau:

> db.demo20.insertOne({
    "ListOfEmployee": [
        { "EmployeeName1": "John" },
        { "EmployeeName2": "Carol" }
    ],
    "EmployeeName2": []
});

Kiểm tra document vừa tạo:

> db.demo20.find();
{
    "_id": ObjectId("..."),
    "ListOfEmployee": [
        { "EmployeeName1": "John" },
        { "EmployeeName2": "Carol" }
    ],
    "EmployeeName2": []
}

Thực hiện xóa trường EmployeeName2

> db.demo20.update(
    { "EmployeeName2": { "$exists": true } },
    { "$unset": { "EmployeeName2": "" } }
);

Kết quả: WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

Kiểm tra sau khi xóa

> db.demo20.find();
{
    "_id": ObjectId("..."),
    "ListOfEmployee": [
        { "EmployeeName1": "John" },
        { "EmployeeName2": "Carol" }
    ]
}

Lưu ý: Trường EmployeeName2 ở cấp gốc đã bị xóa hoàn toàn, nhưng trường EmployeeName2 bên trong mảng ListOfEmployee vẫn được giữ nguyên vì chúng là trường khác nhau.