Mongodb多字段的独特计数用例子

时间:2015-06-21 16:22:07

标签: python mongodb pymongo

我正在使用pymongo MongoClient来做多个不同数量的字段。

我在这里找到了一个类似的例子:Link

但它对我没有用。

例如,给定:

HSQLDB

我想算一下有多少名字,价值组合。所以我按照上面的链接,写这个只是为了测试(我知道这个解决方案不是我想要的,我只是按照链接的模式,并试图了解它是如何工作的,至少这个代码可以返回我财产以后):

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},
            },
    }
    ])

那么,正确的代码是什么?感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

最后我找到了一个解决方案:Group by Null

res = col.aggregate([
        {
            "$group": {
                "_id": {
                    "name": "$name",
                    "value": "$value",
                    },
                }
        }, 
        {
            "$group": {"_id": None, "count": {"$sum": 1}}
        },
        ])