sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur tar man bort dubbletter från en array?

Från och med MongoDB 2.2 kan du använda aggregeringsramverket med en $unwind , $group och $project steg för att uppnå detta:

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

Notera behovet av $project för att byta namn på favorites fältet, eftersom $group aggregerade fält kan inte kapslas.



  1. 3 sätt att få veckan från en dejt i MongoDB

  2. viloläge andra nivåns cache med Redis - kommer det att förbättra prestandan?

  3. MongoDB $lte Aggregation Pipeline Operator

  4. Unika dokument som använder flera värden i Mongoose Schema