MongoDB में नेस्टेड ऑब्जेक्ट के अंदर सरणी में मान खोजने के लिए डॉट नोटेशन का उपयोग करें। MongoDB स्वचालित रूप से सरणी के अंदर मान खोजता है।
उदाहरण
नेस्टेड सरणी वाले दस्तावेज़ बनाएं:
> 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" वाले दस्तावेज़ ढूंढें
> db.findDataDemo.find({"CustomerDetails.CountryName": "UK"});
आउटपुट:
{ "_id" : ObjectId("5cefa60aef71edecf6a1f6a6"), "CustomerName" : "Carol", "CustomerDetails" : { "CountryName" : [ "UK" ], "isMarried" : [ true ] } }
मुख्य बिंदु:
- डॉट नोटेशन (
CustomerDetails.CountryName) नेस्टेड फील्ड तक पहुंचता है - MongoDB स्वचालित रूप से सरणी के अंदर मान खोजता है - कोई विशेष ऑपरेटर आवश्यक नहीं <यदि सरणी में "UK" है, तो दस्तावेज़ मेल खाता है
संबंधित: यदि आपको सरणी में विशिष्ट स्थिति पर मान खोजना है, तो CustomerDetails.CountryName.0 (पहला तत्व) जैसे पोजिशनल नोटेशन का उपयोग करें।