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

Cập nhật phần tử mảng (array element) trong MongoDB?

Dùng $addToSet để thêm phần tử vào mảng (tránh trùng lặp). Tạo collection:

> db.updateArrayDemo.insertOne(
  {
    "ClientDetails" : [
      { "ClientName" : "John", "DeveloperDetails" : [ ] },
      { "ClientName" : "Larry", "DeveloperDetails" : [ ] }
    ]
  }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5ccf465edceb9a92e6aa1960") }

Hiển thị document:

> db.updateArrayDemo.find().pretty();

Kết quả:

Cập nhật: thêm field Technology vào object ClientName="Larry" (dùng positional $):

> db.updateArrayDemo.update(
  { "ClientDetails.ClientName": "Larry" },
  { $addToSet: { "ClientDetails.$.Technology": { 'DeveloperName': "Chris", 'WorkExperience':5 } } },
  false, true
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Kiểm tra lại (Larry có thêm mảng Technology):

> db.updateArrayDemo.find().pretty();

Kết quả: