Ab MongoDB 2.2 können Sie das Aggregationsframework mit einem $unwind
verwenden , $group
und $project
Stufe, um dies zu erreichen:
db.users.aggregate([{$unwind: '$favorites.books'},
{$group: {_id: '$_id',
books: {$addToSet: '$favorites.books'},
name: {$first: '$name'}}},
{$project: {'favorites.books': '$books', name: '$name'}}
])
Beachten Sie die Notwendigkeit des $project
um die favorites
umzubenennen Feld, seit $group
aggregierte Felder können nicht verschachtelt werden.