A partire da MongoDB 2.2 puoi usare il framework di aggregazione con un $unwind
, $group
e $project
fase per raggiungere questo obiettivo:
db.users.aggregate([{$unwind: '$favorites.books'},
{$group: {_id: '$_id',
books: {$addToSet: '$favorites.books'},
name: {$first: '$name'}}},
{$project: {'favorites.books': '$books', name: '$name'}}
])
Nota la necessità del $project
per rinominare i favorites
campo, poiché $group
i campi aggregati non possono essere nidificati.