MongoDB-এ এম্বেডেড (nested) ডকুমেন্টের ভিতরের ফিল্ড মান বাড়াতে $inc অপারেটর ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে StudentDetails অবজেক্টের ভিতরে StudentScores আছে, আর সেখানে StudentMongoDBScore ফিল্ডটি ইনক্রিমেন্ট করা হবে।
নমুনা ডেটা তৈরি
> db.embeddedValueIncrementDemo.insertOne(
{
"StudentDetails": {
"StudentScores": {
"StudentMathScore": 90,
"StudentMongoDBScore": 78
}
}
}
);
{
"acknowledged": true,
"insertedId": ObjectId("5cd2b670345990cee87fd896")
}
ডকুমেন্টগুলো দেখুন
> db.embeddedValueIncrementDemo.find().pretty();আউটপুট:
{
"_id": ObjectId("5cd2b670345990cee87fd896"),
"StudentDetails": {
"StudentScores": {
"StudentMathScore": 90,
"StudentMongoDBScore": 78
}
}
}
এম্বেডেড ফিল্ড ইনক্রিমেন্ট করার কোয়েরি
ডট (.) নোটেশন ব্যবহার করে নেস্টেড পথ নির্দিষ্ট করুন:
> db.embeddedValueIncrementDemo.update(
{ _id: new ObjectId("5cd2b670345990cee87fd896") },
{ $inc: { "StudentDetails.StudentScores.StudentMongoDBScore": 20 } },
{ upsert: true, safe: true },
null
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
আপডেট হওয়া ডকুমেন্ট যাচাই করুন
> db.embeddedValueIncrementDemo.find().pretty();আউটপুট (StudentMongoDBScore এখন ৯৮):
{
"_id": ObjectId("5cd2b670345990cee87fd896"),
"StudentDetails": {
"StudentScores": {
"StudentMathScore": 90,
"StudentMongoDBScore": 98
}
}
}
মূল পয়েন্ট: এম্বেডেড ফিল্ড আপডেট করতে পূর্ণ পথ (যেমন "StudentDetails.StudentScores.StudentMongoDBScore") কোটেশনМар্কসহ $inc-এ পাস করুন।