【发布时间】:2015-06-22 00:45:14
【问题描述】:
我正在使用 pymongo MongoClient 对多个字段进行不同的计数。
我在这里找到了一个类似的例子:Link
但这对我不起作用。
例如,通过给定:
data = [{"name": random.choice(all_names),
"value": random.randint(1, 1000)} for i in range(1000)]
collection.insert(data)
我想计算有多少名称、值组合。所以我按照上面的链接,写这个只是为了测试(我知道这个解决方案不是我想要的,我只是按照链接的模式,并试图了解它是如何工作的,至少这段代码可以返回我某事):
collection.aggregate([
{
"$group": {
"_id": {
"name": "$name",
"value": "$value",
}
}
},
{
"$group": {
"_id": {
"name": "$_id.name",
},
"count": {"$sum": 1},
},
}
])
但是控制台给了我这个:
on namespace test.$cmd failed: exception: A pipeline stage
specification object must contain exactly one field.
那么,执行此操作的正确代码是什么?感谢您的所有帮助。
【问题讨论】: