MongoDB में विशिष्ट एम्बेडेड दस्तावेज़ के लिए $unwind का दो बार उपयोग करें।
नमूना डेटा बनाना (नेस्टेड ऐरे)
> db.demo631.insert( {
id: "101",
Info1: [
{ CountryName: "US", Info2: [ { Name:"Chris", Age:24 }, { Name:"Bob", Age:22 } ] }
]
} );
दस्तावेज़ देखना
> db.demo631.find();
{ "id" : "101", "Info1" : [ { "CountryName" : "US", "Info2" : [ { "Name" : "Chris", "Age" : 24 }, { "Name" : "Bob", "Age" : 22 } ] } ] }
विशिष्ट एम्बेडेड दस्तावेज़ प्राप्त करने की क्वेरी (Age 22 वाला)
> db.demo631.aggregate([
{ "$unwind": "$Info1" },
{ "$unwind": "$Info1.Info2" },
{ "$match": { "Info1.Info2.Age": 22 } }
])
परिणाम:
{ "id" : "101", "Info1" : { "CountryName" : "US", "Info2" : { "Name" : "Bob", "Age" : 22 } } }
व्याख्या: पहला $unwind Info1 ऐरे को फ्लैट करता है, दूसरा $unwind नेस्टेड Info2 ऐरे को फ्लैट करता है। फिर $match Age 22 वाले दस्तावेज़ को फ़िल्टर करता है।