[英]Mongodb distinct count for multi fields With example
我正在使用pymongo MongoClient做多個字段不同的計數。
我在這里找到了類似的示例: 鏈接
但這對我不起作用。
例如,通過給出:
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.
那么,執行此操作的正確代碼是什么? 感謝您的所有幫助。
最終我找到了解決方案: 按空分組
res = col.aggregate([
{
"$group": {
"_id": {
"name": "$name",
"value": "$value",
},
}
},
{
"$group": {"_id": None, "count": {"$sum": 1}}
},
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.