MongoDB 2.2以降、$unwind
で集約フレームワークを使用できます。 、$group
および$project
これを達成するための段階:
db.users.aggregate([{$unwind: '$favorites.books'},
{$group: {_id: '$_id',
books: {$addToSet: '$favorites.books'},
name: {$first: '$name'}}},
{$project: {'favorites.books': '$books', name: '$name'}}
])
$project
の必要性に注意してください favorites
の名前を変更します $group
以降のフィールド 集計フィールドはネストできません。