MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Was ist der richtige Weg, um ein HAVING in einer MongoDB GROUP BY auszuführen?

Neue Antwort unter Verwendung des Mongo-Aggregationsframeworks

Nachdem diese Frage gestellt und beantwortet wurde, veröffentlichte 10gen Mongodb Version 2.2 mit einem Aggregations-Framework. Der neue beste Weg, diese Abfrage durchzuführen, ist:

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 hat ein praktisches Umrechnungsdiagramm für die SQL-zu-Mongo-Aggregation, das es wert ist, mit einem Lesezeichen versehen zu werden.