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

Thêm trường bổ sung vào sub-document trong MongoDB

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 } ] }