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
Technologyvà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ả: