এক ডকুমেন্টের অ্যারেতে অবজেক্ট আপডেট করতে, আপনাকে update() মেথড ব্যবহার করতে হবে। update() মেথড বুঝতে, আসুন একটি কালেকশন ডকুমেন্ট সহ তৈরি করি। কালেকশন ডকুমেন্ট সহ তৈরির কোয়েরি নিম্নরূপ:
> db.updateObjects.insertOne({"CustomerId":1,"CustomerName":"Larry","TotalItems":100, ... "ItemDetails":[ ... { ... "NameOfItem":"Item_1", ... "Amount":450 ... }, ... { ... "NameOfItem":"Item_2", ... "Amount":500 ... }, ... { ... "NameOfItem":"Item_3", ... "Amount":200 ... } ... ] ... } ... );নিচে আউটপুট দেওয়া হলো:
{ "acknowledged" : true, "insertedId" : ObjectId("5c6d688b0c3d5054b766a769") }এখন find() মেথডের সাহায্যে কালেকশন থেকে ডকুমেন্ট প্রদর্শন করুন। কোয়েরি নিম্নরূপ:
> db.updateObjects.find().pretty();
নিচে আউটপুট দেওয়া হলো যা উপরে তৈরি কালেকশন থেকে ডকুমেন্ট দেখাচ্ছে:
{ "_id" : ObjectId("5c6d688b0c3d5054b766a769"), "CustomerId" : 1, "CustomerName" : "Larry", "TotalItems" : 100, "ItemDetails" : [ { "NameOfItem" : "Item_1", "Amount" : 450 }, { "NameOfItem" : "Item_2", "Amount" : 500 }, { "NameOfItem" : "Item_3", "Amount" : 200 } ] }"Amount":200 কে ১৩০ মান দিয়ে ইনক্রিমেন্ট করুন। কোয়েরি নিম্নরূপ। এখানে, আমরা একটি ফিল্ডের মান ইনক্রিমেন্ট করতে $inc অপারেটর ব্যবহার করেছি:
> db.updateObjects.update({"CustomerId":1,"ItemDetails.NameOfItem":"Item_3"}, {$inc:{"ItemDetails.$.Amount":130}}, ... false,true); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })আমরা সফলভাবে মানটি আপডেট/ইনক্রিমেন্ট করেছি। আসুন কালেকশন থেকে ডকুমেন্ট প্রদর্শন করি। কোয়েরি নিম্নরূপ:
> db.updateObjects.find().pretty();
নিচে আউটপুট দেওয়া হলো:
{ "_id" : ObjectId("5c6d688b0c3d5054b766a769"), "CustomerId" : 1, "CustomerName" : "Larry", "TotalItems" : 100, "ItemDetails" : [ { "NameOfItem" : "Item_1", "Amount" : 450 }, { "NameOfItem" : "Item_2", "Amount" : 500 }, { "NameOfItem" : "Item_3", "Amount" : 330 } ] }স্যাম্পল আউটপুটটি দেখুন, Amount ২০০ কে ১৩০ দিয়ে ইনক্রিমেন্ট করা হয়েছে, যা এখন ৩৩০।