สำหรับกรณีนี้ ให้ใช้เมธอด UPDATE() และภายในนั้นตั้งค่าสองเงื่อนไข มาสร้างคอลเล็กชันกันเถอะ
> db.demo605.insertOne(
{
_id:1,
"Information" : [
{
"id" : "Product-1",
"Quantity" : 50
},
{
"id" : "Product-2",
"Quantity" : 100
}
]
}
);
{ "acknowledged" : true, "insertedId" : 1 }
> db.demo605.insertOne(
{
_id:2,
"Information" : [
{
"id" : "Product-1",
"Quantity" : 30
},
{
"id" : "Product-2",
"Quantity" : 40
}
]
}
);
{ "acknowledged" : true, "insertedId" : 2 }
แสดงเอกสารทั้งหมดด้วยเมธอด find()
> db.demo605.find();
ผลลัพธ์ที่ได้
{ "_id" : 1, "Information" : [ { "id" : "Product-1", "Quantity" : 50 }, { "id" : "Product-2", "Quantity" : 100 } ] }
{ "_id" : 2, "Information" : [ { "id" : "Product-1", "Quantity" : 30 }, { "id" : "Product-2", "Quantity" : 40 } ] }
คำสั่งอัปเดต Quantity ใน MongoDB ตามสองเงื่อนไข (_id=1 และ Information.id=Product-1)
>db.demo605.update({_id:1,"Information.id":"Product-1"}, {$set:{"Information.$.Quantity":1000}} );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
แสดงเอกสารทั้งหมดหลังอัปเดต
> db.demo605.find().pretty();
ผลลัพธ์ที่ได้
{ "_id" : 1, "Information" : [ { "id" : "Product-1", "Quantity" : 1000 }, { "id" : "Product-2", "Quantity" : 100 } ] }
{ "_id" : 2, "Information" : [ { "id" : "Product-1", "Quantity" : 30 }, { "id" : "Product-2", "Quantity" : 40 } ] }