MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment supprimer les entrées en double d'un tableau ?

Depuis MongoDB 2.2, vous pouvez utiliser le framework d'agrégation avec un $unwind , $group et $project étape pour y parvenir :

db.users.aggregate([{$unwind: '$favorites.books'},
                    {$group: {_id: '$_id',
                              books: {$addToSet: '$favorites.books'},
                              name: {$first: '$name'}}},
                    {$project: {'favorites.books': '$books', name: '$name'}}
                   ])

Notez la nécessité du $project pour renommer les favorites champ, puisque $group les champs agrégés ne peuvent pas être imbriqués.