MongoDB-এ অ্যারে থেকে নির্দিষ্ট মান দিয়ে এলিমেন্ট রিমুভ করতে $pull এবং $in অপারেটর একসাথে ব্যবহার করা হয়। একাধিক অ্যারে থেকে একসাথে মান মুছে ফেলার ক্ষেত্রে এটি খুব কার্যকর।
সিনট্যাক্স
db.yourCollectionName.update(
{},
{ $pull: {
yourFirstArrayName: { $in: ["yourValue"] },
yourSecondArrayName: "yourValue"
}
},
{ multi: true }
);
নমুনা কালেকশন তৈরি
> db.removeArrayElement.insertOne({
"StudentName": "Larry",
"StudentCoreSubject": ["MongoDB", "MySQL", "SQL Server", "Java"],
"StudentFavouriteTeacher": ["John", "Marry", "Carol"]
});
{ "acknowledged": true, "insertedId": ObjectId("5c6ec9c46fd07954a4890688") }
ডকুমেন্ট প্রদর্শন
> db.removeArrayElement.find().pretty();
আউটপুট:
{
"_id": ObjectId("5c6ec9c46fd07954a4890688"),
"StudentName": "Larry",
"StudentCoreSubject": [ "MongoDB", "MySQL", "SQL Server", "Java" ],
"StudentFavouriteTeacher": [ "John", "Marry", "Carol" ]
}
এলিমেন্ট রিমুভ করার কোয়েরি
StudentCoreSubject অ্যারেতে "Java" এবং StudentFavouriteTeacher অ্যারেতে "Marry" রিমুভ করা:
> db.removeArrayElement.update(
{},
{ $pull: {
StudentCoreSubject: { $in: ["Java"] },
StudentFavouriteTeacher: "Marry"
}
},
{ multi: true }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
আপডেটের পর যাচাই
> db.removeArrayElement.find().pretty();
আউটপুট:
{
"_id": ObjectId("5c6ec9c46fd07954a4890688"),
"StudentName": "Larry",
"StudentCoreSubject": [ "MongoDB", "MySQL", "SQL Server" ],
"StudentFavouriteTeacher": [ "John", "Carol" ]
}
ব্যাখ্যা: প্রথম অ্যারেতে "Java" এবং দ্বিতীয় অ্যারেতে "Marry" এলিমেন্ট দুটি সফলভাবে রিমুভ হয়েছে। $in অপারেটর একাধিক মান চেক করার জন্য ব্যবহৃত হয়, কিন্তু এখানে একই মান দিয়ে কাজ করা হয়েছে।