हां, MongoDB में ऑब्जेक्ट्स के ऐरे को खोजने के लिए aggregate() में $unwind का उपयोग करें। मिलान के लिए $match का उपयोग करें।
नमूना डेटा बनाना
> db.demo623.insertOne( {
_id:1,
details:[
{ Name:"Chris" },
{ DueDate:new ISODate("2020-01-10") },
{ CountryName:"US" }
]
} );
दस्तावेज़ देखना
> db.demo623.find().pretty();
{ "_id" : 1, "details" : [ { "Name" : "Chris" }, { "DueDate" : ISODate("2020-01-10T00:00:00Z") }, { "CountryName" : "US" } ] }
ऑब्जेक्ट्स के ऐरे में खोज क्वेरी
> db.demo623.aggregate(
{$unwind: "$details"},
{$match: {"details.Name":"Chris"}},
{$project: {"details.Name": 1}}
)
परिणाम:
{ "_id" : 1, "details" : { "Name" : "Chris" } }
व्याख्या: $unwind ऐरे को डी-कंस्ट्रक्ट करता है, प्रत्येक एलिमेंट के लिए अलग दस्तावेज़ आउटपुट करता है। फिर $match "Name": "Chris" वाले एलिमेंट को फ़िल्टर करता है, और $project केवल वांछित फील्ड दिखाता है।