आप $project
. का उपयोग कर सकते हैं &$unwind
&$group
का एकत्रीकरण
परिणाम को अपनी आवश्यकता के करीब लाने के लिए ढांचा।
> db.countries.aggregate({$project:{a:'$data.country.neighbor.name'}},
{$unwind:'$a'},
{$unwind:'$a'},
{$group:{_id:'a',res:{$addToSet:'$a'}}})
{
"result" : [
{
"_id" : "a",
"res" : [
"Colombia",
"Malaysia",
"Switzerland",
"Costa Rica",
"Austria"
]
}
],
"ok" : 1
}
$unwind
दो बार उपयोग किया जाता है क्योंकि नाम सरणी गहरी नेस्टेड है। और यह तभी काम करेगा जब neighbor
विशेषता एक सरणी है। आपके उदाहरण में एक पड़ोसी क्षेत्र (मलेशिया) एक सरणी नहीं है