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

MongoDB-এ ভরা নেস্টেড অ্যারে সহ ডকুমেন্ট খুঁজে বের করা এবং ফলাফল রি-শেপ করা


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

> db.demo187.insertOne( ...    { ...      "_id" : "101", ...      "Details" : [ ...         { "Subject" : "MongoDB" }, ...         { "Subject" : "MySQL" } ...      ] ...   } ...); { "acknowledged" : true, "insertedId" : "101" } > db.demo187.insertOne( ...   { ...      "_id" : "102", ...      "Details" : [ ...         { } ...      ] ...   } ...); { "acknowledged" : true, "insertedId" : "102" } > db.demo187.insertOne( ...   { ...      "_id" : "103", ...      "Details" : [ ...         { "Subject" : "MongoDB" }, ...         { "Subject" : "MySQL" } ...      ] ...   } ...); { "acknowledged" : true, "insertedId" : "103" }

find() মেথড ব্যবহার করে কলেকশন থেকে সব ডকুমেন্ট প্রদর্শন

> db.demo187.find();

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

{ "_id" : "101", "Details" : [ { "Subject" : "MongoDB" }, { "Subject" : "MySQL" } ] } { "_id" : "102", "Details" : [ {  } ] } { "_id" : "103", "Details" : [ { "Subject" : "MongoDB" }, { "Subject" : "MySQL" } ] }

MongoDB-এ ভরা নেস্টেড অ্যারে সহ ডকুমেন্ট খুঁজে বের করার কোয়েরি

> db.demo187.aggregate([ ... ...   {$unwind: '$Details'}, ... ...   {$project: {Subject: '$Details.Subject'}}, ... ...   {$match: {Subject: {$exists: true}}} ... ])

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

{ "_id" : "101", "Subject" : "MongoDB" } { "_id" : "101", "Subject" : "MySQL" } { "_id" : "103", "Subject" : "MongoDB" } { "_id" : "103", "Subject" : "MySQL" }

ব্যাখ্যা: এই কোয়েরিটি $unwind ব্যবহার করে Details অ্যারে ত realidade, তারপর $project দিয়ে শুধু Subject ফিল্ড বের করে, এবং $match দিয়ে শুধু সেই ডকুমেন্টগুলো ফিল্টার করে যেখানে Subject ফিল্ডটি বিদ্যমান। ফলে খালি অবজেক্ট ধারণকারী ডকুমেন্ট (যেমন _id: 102) বাদ পড়ে।

  1. MongoDB-এ অ্যারে আইটেম গ্রুপ করে একই প্রাইসের প্রোডাক্ট কাউন্ট করা

  2. MongoDB-এ অ্যারেতে ম্যাচ করা অবজেক্টের সংখ্যা অনুযায়ী ডকুমেন্ট খোঁজা ($where / Aggregation)

  3. MongoDB-এ নির্দিষ্ট FirstName এবং LastName সম্বয় ডকুমেন্ট খোঁজা ($and + $in)

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