Från och med MongoDB 2.2 kan du använda aggregeringsramverket med en $unwind
, $group
och $project
steg för att uppnå detta:
db.users.aggregate([{$unwind: '$favorites.books'},
{$group: {_id: '$_id',
books: {$addToSet: '$favorites.books'},
name: {$first: '$name'}}},
{$project: {'favorites.books': '$books', name: '$name'}}
])
Notera behovet av $project
för att byta namn på favorites
fältet, eftersom $group
aggregerade fält kan inte kapslas.