mongo查询等效的SQL查询(GROUP BY COUNT DISTINCT)

时间:2013-06-04 04:32:56

标签: mongodb

我的mongo集合包含以下键[A,B,C]

的文档

我的SQL查询看起来像这样。

SELECT A, COUNT(DISTINCT B) from table where C == 'some_value' GROUP BY A;

在Mongo中做同样的事情会有什么效果?我试图看看是否有办法使用聚合来做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以使用聚合框架执行此操作。但是我们应该假设你的文件是平的 - 即{A:x,B:y,C:z}或类似的东西吗?

db.collection.aggregate( {$match:{C:z}},
         {$group:{_id:"$A",
                  Bs :{$addToSet:"$B"}
         },
         {$unwind:"$Bs"},
         {$group:{_id:"$_id",
                  distinctBcount: {$sum:1}
         }
);