कई सब-डॉक्यूमेंट्स से फ़ील्ड प्राप्त करने के लिए, $unwind के साथ MongoDB एग्रीगेट का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं:
> db.demo671.insertOne(
{
"details" : [
{
"id" : "1"
},
{
CountryName:"US",
"details1" : [
{
"id" : "1"
},
{
"id" : "2"
}
]
},
{
CountryName:"UK",
"details1" : [
{
"id" : "2"
},
{
"id" : "1"
}
]
},
{
CountryName:"AUS",
"details1" : [
{
"id" : "1"
}
]
}
]
}
) { "acknowledged" : true, "insertedId" : ObjectId("5ea3e5d004263e90dac943e0") }
find() मेथड की मदद से संग्रह के सभी दस्तावेज़ प्रदर्शित करें:
> db.demo671.find();
यह निम्न आउटपुट देगा:
{ "_id" : ObjectId("5ea3e5d004263e90dac943e0"), "details" : [ { "id" : "1" }, { "CountryName" : "US", "details1" : [ { "id" : "1" }, { "id" : "2" } ] }, { "CountryName" : "UK", "details1" : [ { "id" : "2" }, { "id" : "1" } ] }, { "CountryName" : "AUS", "details1" : [ { "id" : "1" } ] } ] }
MongoDB में शर्त से मेल खाने वाले कई सब-डॉक्यूमेंट्स से फ़ील्ड प्राप्त करने की क्वेरी:
> db.demo671.aggregate([
{$unwind: '$details'},
{$match: {'details.details1.id': '1'}},
{$project: {_id: 0, Country: '$details.CountryName'}}
]).pretty()
यह निम्न आउटपुट देगा:
{ "Country" : "US" }
{ "Country" : "UK" }
{ "Country" : "AUS" }