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

Tăng giá trị phần tử mảng đối tượng trong MongoDB

Để tăng giá trị của trường trong đối tượng mảng, sử dụng toán tử $inc kết hợp positional operator $. Tạo collection:

> db.demo506.insertOne({"details":[{id:1,Quantity:4},{id:2,Quantity:3},{id:3,Quantity:2},{id:4,Quantity:7}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e882ed6987b6e0e9d18f576") }

Hiển thị dữ liệu:

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

Kết quả:

Tăng Quantity thêm 10 cho phần tử có id=2:

> db.demo506.update({"details.id":2},{$inc:{"details.$.Quantity":10}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Kiểm tra lại:

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

Kết quả - Quantity của id=2 đã tăng từ 3 lên 13:

Giải thích: {"details.id":2} tìm tài liệu chứa phần tử id=2 trong mảng details. Toán tử $ tham chiếu đến phần tử khớp đầu tiên, $inc tăng giá trị Quantity.