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

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


নির্দিষ্ট রেকর্ড মুছে ফেলতে $pull ব্যবহার করুন এবং যেহেতু ইতিমধ্যে তৈরি কলেকশন আপডেট করা হচ্ছে, তাই UPDATE() ব্যবহার করুন।

ডকুমেন্টসহ একটি কলেকশন তৈরি করা

> db.demo213.insertOne({ ...   "id": 101, ...   "details1": [ ...      { ...         "Name": "Chris", ...         "details2": [ ...            { ...               "StudentName": "David", ...               "Subject": "MongoDB" ...            }, ...            { ...               "StudentName": "Mike", ...               "Subject": "MySQL" ...            } ...         ] ... ...      } ...   ] ...} ...); {    "acknowledged" : true,    "insertedId" : ObjectId("5e3e300c03d395bdc2134704") }

find() মেথড ব্যবহার করে সব ডকুমেন্ট দেখানো

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

এটি নিচের আউটপুট তৈরি করবে:

{    "_id" : ObjectId("5e3e300c03d395bdc2134704"),    "id" : 101,    "details1" : [       {          "Name" : "Chris",          "details2" : [             {                "StudentName" : "David",                "Subject" : "MongoDB"             },             {                "StudentName" : "Mike",                "Subject" : "MySQL"             }          ]       }    ] }

নেস্টেড অ্যারে থেকে নির্দিষ্ট রেকর্ড মুছে ফেলার কোয়ারী

> db.demo213.update({"id": 101, "details1.Name": "Chris"}, ...   { ...      "$pull": {"details1.$.details2" : { "Subject": "MySQL" }} ...   }, multi=true ...) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

আপডেটের পর সব ডকুমেন্ট দেখানো

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

এটি নিচের আউটপুট তৈরি করবে:

{    "_id" : ObjectId("5e3e300c03d395bdc2134704"),    "id" : 101,    "details1" : [       {          "Name" : "Chris",          "details2" : [             {                "StudentName" : "David",                "Subject" : "MongoDB"             }          ]       }    ] }

ব্যাখ্যা: প্রথমে প্যারেন্ট ডকুমেন্ট (id: 101) এবং প্রথম লেভেল অ্যারে এলিমেন্ট (details1.Name: "Chris") ফিল্টার করা হয়েছে। তারপর পজিশনাল $ অপারেটর দিয়ে সেই এলিমেন্টের নেস্টেড details2 অ্যারে থেকে Subject: "MySQL" মিলে যাওয়া এলিমেন্ট $pull দিয়ে মুছে ফেলা হয়েছে।

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

  2. MongoDB-এ নেস্টেড অ্যারে সর্ট করা

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

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