MongoDB-এ নেস্টেড অবজেক্টের ভেতরের অ্যারে থেকে ডেটা খুঁজে বের করতে ডট নোটেশন (dot notation) ব্যবহার করুন।
উদাহরণ
নেস্টেড স্ট্রাকচার সহ ডকুমেন্ট তৈরি করুন:
> db.findDataDemo.insertOne({
"_id": new ObjectId(),
"CustomerName": "John",
"CustomerDetails": {
"CountryName": ["AUS"],
"isMarried": [false]
}
});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefa5eeef71edecf6a1f6a5") }
> db.findDataDemo.insertOne({
"_id": new ObjectId(),
"CustomerName": "Carol",
"CustomerDetails": {
"CountryName": ["UK"],
"isMarried": [true]
}
});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefa60aef71edecf6a1f6a6") }
সকল ডকুমেন্ট দেখুন:
> db.findDataDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cefa5eeef71edecf6a1f6a5"), "CustomerName" : "John", "CustomerDetails" : { "CountryName" : [ "AUS" ], "isMarried" : [ false ] } }
{ "_id" : ObjectId("5cefa60aef71edecf6a1f6a6"), "CustomerName" : "Carol", "CustomerDetails" : { "CountryName" : [ "UK" ], "isMarried" : [ true ] } }
CountryName = "UK" olan ডকুমেন্ট খুঁজে বের করা
> db.findDataDemo.find({"CustomerDetails.CountryName": "UK"});
আউটপুট:
{ "_id" : ObjectId("5cefa60aef71edecf6a1f6a6"), "CustomerName" : "Carol", "CustomerDetails" : { "CountryName" : [ "UK" ], "isMarried" : [ true ] } }
ব্যাখ্যা: CustomerDetails.CountryName ডট নোটেশন ব্যবহার করে নেস্টেড অবজেক্টের ভেতরের অ্যারে ফিল্ডে ক্যোয়ারি করা হয়েছে। MongoDB অটোমেটিক্যালি অ্যারেতে মানটি খুঁজে বের করে।
টিপ: যদি অ্যারেতে একাধিক মান থাকে, তবে যেকোনো একটি মিলিলেও ডকুমেন্ট ফেরত দেবে। নির্দিষ্ট পজিশনের জন্য $elemMatch ব্যবহার করুন।