MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Qual é a maneira correta de fazer um HAVING em um MongoDB GROUP BY?

Nova resposta usando a estrutura de agregação do Mongo


Depois que essa pergunta foi feita e respondida, a 10gen lançou o Mongodb versão 2.2 com uma estrutura de agregação. A nova melhor maneira de fazer essa consulta é:
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 tem um gráfico de conversão de SQL para Mongo Aggregation útil que vale a pena marcar.