ডকুমেন্টসহ একটি কলেকশন তৈরি করা
> 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) বাদ পড়ে।