MongoDB-তে $inc অপারেটর ব্যবহার করে এক কমান্ডে একাধিক ফিল্ড ইনক্রিমেন্ট করা
MongoDB-তে একই আপডেট অপারেশনে একাধিক নমেরিক ফিল্ড ইনক্রিমেন্ট (বা ডিক্রিমেন্ট) করতে $inc অপারেটর ব্যবহার করা হয়।
ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন
> db.incrementDemo.insertOne({"Value1":10,"Value2":20});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdaf07de8cc557214c0e15") }
ধাপ ২: ডকুমেন্ট প্রদর্শন করুন
> db.incrementDemo.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5cbdaf07de8cc557214c0e15"),
"Value1" : 10,
"Value2" : 20
}
ধাপ ৩: এক কমান্ডে দুটি ফিল্ড ইনক্রিমেন্ট করুন
> db.incrementDemo.update({}, { $inc: { Value1: 1, Value2: 1 } });
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ধাপ ৪: আপডেট হওয়া ডকুমেন্ট যাচাই করুন
> db.incrementDemo.find().pretty();
ফলাফল:
{
"_id" : ObjectId("5cbdaf07de8cc557214c0e15"),
"Value1" : 11,
"Value2" : 21
}
ব্যাখ্যা:
{}- খালি কোয়েরি (সব ডকুমেন্ট ম্যাচ, এখানে শুধু ১টি আছে){$inc: { Value1: 1, Value2: 1 }}- Value1 এবং Value2 দুটোই ১ করে বৃদ্ধি করা হয়েছে$incঅপারেটরটি একসাথে একাধিক ফিল্ডে কাজ করতে পারে- নেগেটিভ মান দিয়ে ডিক্রিমেন্টও করা যায়:
{$inc: { Value1: -5, Value2: -3 }}
ব্যবহারিক উদাহরণ:
// কাউন্টার আপডেট
db.counters.update({_id: "pageViews"}, {$inc: {views: 1, uniqueVisitors: 1}});
// ইনভেন্টরি ম্যানেজমেন্ট
db.products.update({_id: 101}, {$inc: {stock: -1, sold: 1}});
দ্রষ্টব্য: $inc শুধু নমেরিক ফিল্ডে কাজ করে। যদি ফিল্ড না থাকে, তবে সেটি তৈরি করে দিয়ে মান সেট করে (upsert: true থাকলে)।