小编ter*_*eto的帖子

pymongo/mongodb高级查询

我是pymongo/mongodb的新手,现在我遇到了挑战.

我有以下结构存储在mongodb(v 2.04)中.

{
    "t": <timestamp>, 
    "d": {
        "uid": <string>,
        "action": <string>
    }
}
Run Code Online (Sandbox Code Playgroud)

这种结构跟踪用户操作,并且与我原来的复杂性略有降低.数据非常庞大,查询将具有限制日期以减少结果.

我想要的是能够创建一个在特定时间段内执行最多操作的用户的表.

表:

Rank    Uid    #num actions
1       5      235
2       237    234
3       574    229
Run Code Online (Sandbox Code Playgroud)

到目前为止,我只查询了点点滴滴:

query = {"t": {"$lte": end_utc, "$gte": start_utc}}
db.actions.find(query).distinct("d.uid")
Run Code Online (Sandbox Code Playgroud)

这将简单地生成一个独特的uid列表.如何查询(使用pymongo)获取如下列表:

[
    {
        "actions": 100,
        "uid": 273
    },
    {
        "actions": 99",
        "uid": 632
    }..n sorted on actions descending

]
Run Code Online (Sandbox Code Playgroud)

mongodb pymongo

2
推荐指数
1
解决办法
573
查看次数

标签 统计

mongodb ×1

pymongo ×1