Để cập nhật một phần tử đơn lẻ trong mảng, sử dụng toán tử vị trí $. Tạo collection:
> db.updateASingleListDemo.insertOne({
_id: 1,
"EmployeeName": "Chris",
"EmployeeDetails": [
{ "EmployeeId": "EMP-101", "EmployeeSalary": 18999 }
]
});
{ "acknowledged": true, "insertedId": 1 }
Hiển thị document:
> db.updateASingleListDemo.find().pretty();
Kết quả:
{
"_id": 1,
"EmployeeName": "Chris",
"EmployeeDetails": [
{ "EmployeeId": "EMP-101", "EmployeeSalary": 18999 }
]
}
Cập nhật lương (tăng 1) cho phần tử có EmployeeId="EMP-101":
> db.updateASingleListDemo.update(
{ _id: 1, 'EmployeeDetails.EmployeeId': "EMP-101" },
{ $inc: { 'EmployeeDetails.$.EmployeeSalary': 1 } }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
Kiểm tra lại:
> db.updateASingleListDemo.find().pretty();
Kết quả (lương đã thành 19000):
{
"_id": 1,
"EmployeeName": "Chris",
"EmployeeDetails": [
{ "EmployeeId": "EMP-101", "EmployeeSalary": 19000 }
]
}