Sử dụng update() với $set và dot notation kèm index mảng (0, 1...).
Tạo collection với document:
> db.addExtraFieldDemo.insertOne(
{
"_id": 1,
"UserName": "Larry",
"UserOtherDetails": [
{ "UserCountryName": "US", "UserAge": 23 },
{ "UserCountryName": "UK", "UserAge": 24 }
]
}
); { "acknowledged" : true, "insertedId" : 1 }
Hiển thị document:
> db.addExtraFieldDemo.find().pretty();
Kết quả:
{ "_id" : 1, "UserName" : "Larry", "UserOtherDetails" : [ { "UserCountryName" : "US", "UserAge" : 23 }, { "UserCountryName" : "UK", "UserAge" : 24 } ] }
Truy vấn thêm trường "isMarried_" = true vào sub-document đầu tiên (index 0) của mảng UserOtherDetails:
> db.addExtraFieldDemo.update(
{ "_id": 1 },
{ "$set": { "UserOtherDetails.0.isMarried_": true } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Kiểm tra lại document:
> db.addExtraFieldDemo.find().pretty();
Kết quả (sub-document index 0 có thêm trường isMarried_):
{ "_id" : 1, "UserName" : "Larry", "UserOtherDetails" : [ { "UserCountryName" : "US", "UserAge" : 23, "isMarried_" : true }, { "UserCountryName" : "UK", "UserAge" : 24 } ] }