$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
名前配列が深くネストされているため、2回使用されます。そしてそれはneighbor
の場合にのみ機能します 属性は配列です。あなたの例では、1つの隣接フィールド(マレーシア)は配列ではありません