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

Triển khai $addToSet cho mảng lồng mảng và thêm giá trị trong MongoDB

Sử dụng update() kết hợp $addToSet để thêm giá trị vào mảng lồng nhau. Toán tử $addToSet chỉ thêm giá trị nếu chưa tồn tại trong mảng. Tạo collection:

> db.demo509.insertOne({
  "value1": [
    { "value2": [ 76, 14, 56 ] },
    { "value2": [ 12, 19, 91 ] },
    { "value2": [ 87 ] }
  ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e88421d987b6e0e9d18f57d") }

Hiển thị tài liệu:

> db.demo509.find();

Kết quả:

Thêm giá trị 1000 vào mảng value2 của phần tử thứ 3 (index 2) trong mảng value1:

> db.demo509.update({},{$addToSet:{"value1.2.value2":1000}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Kiểm tra lại:

> db.demo509.find();

Kết quả - giá trị 1000 đã được thêm vào mảng value2 của phần tử index 2:

Lưu ý: Cú pháp value1.2.value2 truy cập đến mảng value2 của phần tử tại index 2 trong mảng value1. Nếu chạy lại lệnh, giá trị 1000 sẽ không bị trùng lặp nhờ $addToSet.