我的mongo集合包含以下键[A,B,C]
的文档我的SQL查询看起来像这样。
SELECT A, COUNT(DISTINCT B) from table where C == 'some_value' GROUP BY A;
在Mongo中做同样的事情会有什么效果?我试图看看是否有办法使用聚合来做到这一点。
答案 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}
}
);