MongoDB-এ অ্যারের নির্দিষ্ট সূচক (index) অনুযায়ী উপাদান মুছে ফেলতে $unset এবং $pull অপারেটর দুটি একসাথে ব্যবহার করতে হয়। এই প্রক্রিয়া মূলত দুটি ধাপে সম্পন্ন হয়। সিনট্যাক্স নিচে দেওয়া হলো:
db.yourCollectionName.update({}, {$unset: {"yourArrayListName.yourPosition": yourPositionValue}});
db.yourCollectionName.update({}, {$pull: {"yourArrayListName": null}});
উপরোক্ত সিনট্যাক্স বোঝার জন্য একটি কালেকশন তৈরি করে ডকুমেন্ট ইনসার্ট করি।
> db.removeArrayElements.insertOne({"StudentName": "Larry", "StudentAge": 23, "TechnicalSubject": ["C", "C++", "Java", "MongoDB"]});
{
"acknowledged": true,
"insertedId": ObjectId("5c6ea4879c4643706aef56d2")
}
find() মেথড দিয়ে সব ডকুমেন্ট দেখি।
> db.removeArrayElements.find().pretty();
আউটপুট:
{
"_id": ObjectId("5c6ea4879c4643706aef56d2"),
"StudentName": "Larry",
"StudentAge": 23,
"TechnicalSubject": [
"C",
"C++",
"Java",
"MongoDB"
]
}
এখন ৩ নম্বর ইনডেক্সে অবস্থিত "MongoDB" এলিমেন্টটি মুছে ফেলার কোয়েরি:
> db.removeArrayElements.update({}, {$unset: {"TechnicalSubject.3": 1}});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
> db.removeArrayElements.update({}, {$pull: {"TechnicalSubject": null}});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
ফিরে ডকুমেন্টগুলো চেক করি।
> db.removeArrayElements.find().pretty();
ফলাফল:
{
"_id": ObjectId("5c6ea4879c4643706aef56d2"),
"StudentName": "Larry",
"StudentAge": 23,
"TechnicalSubject": [
"C",
"C++",
"Java"
]
}
উপরের আউটপুটে দেখতে পাচ্ছেন, ৩ নম্বর ইনডেক্স (চতুর্থ অবস্থান) হইতে "MongoDB" উপাদানটি সফলভাবে সরিয়ে দেওয়া হয়েছে।