我想对mongodb cond:{condition}
中group
返回的所有文档进行分组。我使用以下代码:
db.windows.group({
key: {usages:0},
cond: {price:{$lt:30}},
initial: {'counter':0},
reduce: function(doc,o){ o.counter++ },
finalize: function(o) {
o.usages.forEach(function(use){ o[use] = use})
}
})
但这显然不符合我的要求。有没有办法将all
参数传递给key
属性?
答案 0 :(得分:1)
使用.aggregate()
代替$group
。它使用本机编码运算符而不是JavaScript,并不需要.group()
所做的所有“箍跳”:
db.windows.aggregate([
{ "$match": { "price": { "$lt": 30 } } },
{ "$group": {
"_id": null,
"count": { "$sum": 1 }
}}
])
null
“_id”上的$group
值表示只对从初始$match
查询中检索到的所有内容进行分组。 "$sum": 1
实际上是一个计数。