计数文件由某一特定领域分组
问题描述:
示例数据:计数文件由某一特定领域分组
{ "category" : "abc" }
{ "category" : "abc", "ready": true }
{ "category" : "xyz" }
{ "category" : "foo", "ready": true }
{ "category" : "foo", "ready": true }
{ "category" : "foo" }
预期输出:
{
"abc": {
"count": 2,
"ready": 1
},
"xyz": {
"count": 1,
"ready": 0
},
"foo": {
"count": 3,
"ready": 2
}
}
而且这将是很好,如果我可以选配,从迄今作出的那种给一个按天或月份统计。
谢谢!
答
在这里你去:
db.foo.aggregate([{
$group: {
_id: "$category",
count: { $sum: 1},
ready: {
$sum: {
$cond: {
if: "$ready",
then: 1,
else: 0
}
}
}
}
}])
返回:
/* 1 */
{
"_id" : "foo",
"count" : 3,
"ready" : 2
}
/* 2 */
{
"_id" : "xyz",
"count" : 1,
"ready" : 0
}
/* 3 */
{
"_id" : "abc",
"count" : 2,
"ready" : 1
}
你具体要使用的map-reduce? – BanksySan
nope - 无论什么作品 – Tobias
你确实需要它的格式吗?或者这个工作适合你吗?{“_id”:“foo”,“count”:3,“ready”:2}' – kryshna