我是 pymongo/mongodb 的新手,现在我遇到了挑战。
我在 mongodb (v 2.04) 中存储了以下结构。
{
"t": <timestamp>,
"d": {
"uid": <string>,
"action": <string>
}
}
此结构跟踪用户操作,与我原来的结构相比,复杂性略有降低。数据非常庞大,查询将有一个限制日期跨度以减少结果。
我想要的是能够创建一个在特定时间跨度内执行最多操作的用户的表格。
桌子:
Rank Uid #num actions
1 5 235
2 237 234
3 574 229
到目前为止,我只有一点点查询:
query = {"t": {"$lte": end_utc, "$gte": start_utc}}
db.actions.find(query).distinct("d.uid")
这将简单地生成一个唯一 uid 的列表。如何查询(使用 pymongo)以获取列表,例如:
[
{
"actions": 100,
"uid": 273
},
{
"actions": 99",
"uid": 632
}..n sorted on actions descending
]