1

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

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

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

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

4

1 回答 1

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}
         }
);
于 2013-06-04T06:50:22.433 回答