Kể từ MongoDB 2.2, bạn có thể sử dụng khung tổng hợp với $unwind , $group và $project giai đoạn để đạt được điều này:
db.users.aggregate([{$unwind: '$favorites.books'},
{$group: {_id: '$_id',
books: {$addToSet: '$favorites.books'},
name: {$first: '$name'}}},
{$project: {'favorites.books': '$books', name: '$name'}}
])
Lưu ý sự cần thiết của $project để đổi tên favorites trường, kể từ $group các trường tổng hợp không được lồng vào nhau.