MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Qual è il modo corretto per fare un HAVING in un MongoDB GROUP BY?

Nuova risposta utilizzando il framework di aggregazione Mongo

Dopo che questa domanda è stata posta e ha risposto, 10gen ha rilasciato Mongodb versione 2.2 con un framework di aggregazione. Il nuovo modo migliore per eseguire questa query è:

db.col.aggregate( [
   { $group: { _id: { userId: "$userId", name: "$name" },
               count: { $sum: 1 } } },
   { $match: { count: { $gt: 1 } } },
   { $project: { _id: 0, 
                 userId: "$_id.userId", 
                 name: "$_id.name", 
                 count: 1}}
] )

10gen ha un pratico grafico di conversione da SQL a Mongo Aggregation che vale la pena aggiungere ai segnalibri.