অ্যারে অবজেক্টের নির্দিষ্ট এলিমেন্টের মান বাড়াতে $inc অপারেটর ব্যবহার করুন। একটি কালেকশন তৈরি করুন:
> 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") }
find().pretty() দিয়ে ডকুমেন্ট দেখান:
> db.demo506.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5e882ed6987b6e0e9d18f576"), "details" : [ { "id" : 1, "Quantity" : 4 }, { "id" : 2, "Quantity" : 3 }, { "id" : 3, "Quantity" : 2 }, { "id" : 4, "Quantity" : 7 } ] }
id: 2 가진 এলিমেন্টের Quantity ১০ বাড়াতে কোয়েরি:
> db.demo506.update({"details.id":2},{$inc:{"details.$.Quantity":10}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেটের পর ডকুমেন্ট দেখান:
> db.demo506.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5e882ed6987b6e0e9d18f576"), "details" : [ { "id" : 1, "Quantity" : 4 }, { "id" : 2, "Quantity" : 13 }, { "id" : 3, "Quantity" : 2 }, { "id" : 4, "Quantity" : 7 } ] }
ব্যাখ্যা: পজিশনাল $ অপারেটরটি কোয়ারি শর্ত (details.id: 2) মিলে যাওয়া অ্যারে এলিমেন্টকে পয়েন্ট করে। $inc দিয়ে সেই এলিমেন্টের Quantity ফিল্ড ১০ বাড়ানো হয়েছে।