MongoDB-তে নেস্টেড অ্যারেতে মান খুঁজে আপডেট করা
MongoDB-তে নেস্টেড অ্যারেতে থাকা মান খুঁজে আপডেট করতে update কমান্ড এবং $elemMatch অপারেটর ব্যবহার করতে হয়।
ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন
> db.findAndModifyAValueInNestedArrayDemo.insertOne(
{
"CompanyName" : "Amazon",
"DeveloperDetails" : [
{ "ProjectName" : "Online Book Store", "TeamSize" : "5" },
{ "ProjectName" : "Library Management System", "TeamSize" : "7" },
{ "ProjectName" : "Online Banking Application", "TeamSize" : "15" }
]
}
);
{ "acknowledged" : true, "insertedId" : ObjectId("5ca275226304881c5ce84b9f") }
ধাপ ২: সব ডকুমেন্ট প্রদর্শন করুন
> db.findAndModifyAValueInNestedArrayDemo.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5ca275226304881c5ce84b9f"),
"CompanyName" : "Amazon",
"DeveloperDetails" : [
{ "ProjectName" : "Online Book Store", "TeamSize" : "5" },
{ "ProjectName" : "Library Management System", "TeamSize" : "7" },
{ "ProjectName" : "Online Banking Application", "TeamSize" : "15" }
]
}
ধাপ ৩: নেস্টেড অ্যারেতে মান খুঁজে আপডেট করুন
আমরা ProjectName: "Online Banking Application" এর TeamSize কে ২০ করব।
> db.findAndModifyAValueInNestedArrayDemo.update(
{ DeveloperDetails: { $elemMatch: { ProjectName: "Online Banking Application" } } },
{ $set: { 'DeveloperDetails.$.TeamSize': '20' } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ধাপ ৪: আপডেট যাচাই করুন
> db.findAndModifyAValueInNestedArrayDemo.find().pretty();
ফলাফল:
{
"_id" : ObjectId("5ca275226304881c5ce84b9f"),
"CompanyName" : "Amazon",
"DeveloperDetails" : [
{ "ProjectName" : "Online Book Store", "TeamSize" : "5" },
{ "ProjectName" : "Library Management System", "TeamSize" : "7" },
{ "ProjectName" : "Online Banking Application", "TeamSize" : "20" }
]
}
ব্যাখ্যা: $elemMatch অপারেটরটি অ্যারেতে নির্দিষ্ট শর্ত পূরণকারী এলিমেন্টটি খুঁজে বের করে, তারপর $ পজিশনাল অপারেটর দিয়ে সেই নির্দিষ্ট এলিমেন্টের TeamSize ফিল্ড আপডেট করা হয়েছে।