MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie entferne ich doppelte Einträge aus einem Array?

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.