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

Cập nhật phần tử mảng khớp điều kiện trong MongoDB với $push

Tạo collection với document:

> db.updateArrayElementDemo.insertOne(
    {
      "UserDetails": [
        { "UserName": "Chris", "UserAge": 23 }
      ]
    }
); { "acknowledged" : true, "insertedId" : ObjectId("5ce9029378f00858fb12e90d") }

Hiển thị document:

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

Kết quả:

{ "_id" : ObjectId("5ce9029378f00858fb12e90d"), "UserDetails" : [ { "UserName" : "Chris", "UserAge" : 23 } ] }

Truy vấn cập nhật: thêm trường UserCountryName = "US" vào phần tử mảng UserDetails có UserAge = 23 (dùng positional operator $):

db.updateArrayElementDemo.update(
  { "UserDetails.UserAge": 23 },
  { "$push": { "UserDetails.$.UserCountryName": "US" } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Kiểm tra lại document:

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

Kết quả (UserCountryName giờ là mảng chứa "US"):

{ "_id" : ObjectId("5ce9029378f00858fb12e90d"), "UserDetails" : [ { "UserName" : "Chris", "UserAge" : 23, "UserCountryName" : [ "US" ] } ] }