Od MongoDB 2.2 możesz używać frameworka agregacji z $unwind
, $group
i $project
etap, aby to osiągnąć:
db.users.aggregate([{$unwind: '$favorites.books'},
{$group: {_id: '$_id',
books: {$addToSet: '$favorites.books'},
name: {$first: '$name'}}},
{$project: {'favorites.books': '$books', name: '$name'}}
])
Zwróć uwagę na potrzebę $project
zmienić nazwy favorites
pole, ponieważ $group
pola agregujące nie mogą być zagnieżdżane.