sql >> Database >  >> NoSQL >> MongoDB

Hoe dubbele vermeldingen uit een array te verwijderen?

Vanaf MongoDB 2.2 kunt u het aggregatieraamwerk gebruiken met een $unwind , $group en $project stap om dit te bereiken:

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

Let op de noodzaak van het $project om de favorites te hernoemen veld, sinds $group geaggregeerde velden kunnen niet worden genest.



  1. Vind documenten waarvan het arrayveld ten minste n elementen van een bepaalde array bevat

  2. Socket.io migreren van 0.9.x naar 1.x, problemen met het configureren van RedisStore

  3. Totale grootte van documenten in overeenkomende pijplijn overschrijdt de maximale documentgrootte

  4. Ingesloten document versus referentie in het ontwerpmodel van mangoest?