কম্পিউটার টিউটোরিয়াল

MongoDB-এ নেস্টেড অ্যারেতে থেকে নির্দিষ্ট রেকর্ড কিভাবে মুছবেন?

MongoDB-এ নেস্টেড অ্যারে (অ্যারের ভেতরে অ্যারে) থেকে নির্দিষ্ট রেকর্ড মুছে ফেলতে $pull অপারেটর সহ পজিশনাল অপারেটর ব্যবহার করুন।

উদাহরণ

নেস্টেড অ্যারে স্ট্রাকচার সহ ডকুমেন্ট তৈরি করুন:

> db.deletingSpecificRecordDemo.insertOne({
    "StudentDetails": [
        {
            "StudentName": "John",
            "StudentSubjectDetails": [
                { "Subject": "MongoDB", "Marks": 45 },
                { "Subject": "MySQL", "Marks": 67 }
            ]
        }
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5cf2210ab64a577be5a2bc06") }

ডকুমেন্টটি দেখুন:

> db.deletingSpecificRecordDemo.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5cf2210ab64a577be5a2bc06"), "StudentDetails" : [ { "StudentName" : "John", "StudentSubjectDetails" : [ { "Subject" : "MongoDB", "Marks" : 45 }, { "Subject" : "MySQL", "Marks" : 67 } ] } ] }

Marks = 45 olan সাব-ডকুমেন্ট মুছে ফেলা

> db.deletingSpecificRecordDemo.update(
    { "_id": ObjectId("5cf2210ab64a577be5a2bc06"), "StudentDetails.StudentName": "John" },
    { "$pull": { "StudentDetails.$.StudentSubjectDetails": { "Marks": 45 } } },
    { multi: true }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

আপডেট হওয়ার পর ডকুমেন্টটি যাচাই করুন:

> db.deletingSpecificRecordDemo.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5cf2210ab64a577be5a2bc06"), "StudentDetails" : [ { "StudentName" : "John", "StudentSubjectDetails" : [ { "Subject" : "MySQL", "Marks" : 67 } ] } ] }

ব্যাখ্যা:

  • StudentDetails.StudentName: "John" — বাহ্যিক অ্যারেতে John-এর লোকেশন খুঁজে বের করে।
  • StudentDetails.$.StudentSubjectDetails — পজিশনাল $ অপারেটর সেই ম্যাচ করা এলিমেন্টকে রেফার করে।
  • $pull — নেস্টেড অ্যারেতে থেকে Marks: 45 থাকা অবজেক্টটি সরিয়ে দিয়েছে।

নোট: শুধু একটি নেস্টেড লেভেলের জন্য পজিশনাল $ কাজ করে। গভীর নেস্টিংয়ের জন্য arrayFilters (MongoDB ৩.৬+) ব্যবহার করুন।

  1. MongoDB-তে এম্বেডেড অ্যারে থেকে নির্দিষ্ট এলিমেন্ট পাওয়া

  2. MongoDB-এ ডকুমেন্ট থেকে অ্যারে ভ্যালু ডিলিট করা

  3. MongoDB ডকুমেন্টের নির্দিষ্ট ফিল্ড থেকে অ্যারে এলিমেন্ট কাউন্ট করা

  4. MongoDB-এ অবজেক্টের অ্যারে থেকে নেস্টেড ডকুমেন্ট কোয়েরি করা ($elemMatch)