sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cuál es la forma correcta de hacer un HAVING en MongoDB GROUP BY?

Nueva respuesta utilizando el marco de agregación de Mongo

Después de que se hiciera y respondiera esta pregunta, 10gen lanzó la versión 2.2 de Mongodb con un marco de agregación. La nueva mejor manera de hacer esta consulta es:

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 tiene un práctico cuadro de conversión de agregación de SQL a Mongo que vale la pena marcar.