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

Cập nhật mảng subdocument trong MongoDB

Dùng positional operator $ trong $set để cập nhật trường của subdocument trong mảng khớp điều kiện.

Tạo collection demo134:

> db.demo134.insertOne({"EmployeeId":101,"EmployeeDetails":[{"EmployeeName":"Chris","EmployeeAge":27},{"EmployeeName":"Bob","EmployeeAge":28}]});
> db.demo134.insertOne({"EmployeeId":102,"EmployeeDetails":[{"EmployeeName":"David","EmployeeAge":24},{"EmployeeName":"Carol","EmployeeAge":29}]});

Cập nhật EmployeeName = "Robert" cho subdocument có EmployeeName="Chris" trong document EmployeeId=101:

> db.demo134.update(
   {"EmployeeId":101, "EmployeeDetails.EmployeeName":"Chris"},
   {$set: {"EmployeeDetails.$.EmployeeName":"Robert"}}
);

Kết quả: Chris → Robert trong document 101:

{
   "_id" : ObjectId("5e319b2f68e7f832db1a7f7c"),
   "EmployeeId" : 101,
   "EmployeeDetails" : [
      {"EmployeeName":"Robert","EmployeeAge":27},
      {"EmployeeName":"Bob","EmployeeAge":28}
   ]
}
... (document 102 không đổi)