PyMongo类型E

2024-06-28 19:24:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,在这个脚本中,我使用pymongo聚合集合,并在特定聚合的总和大于一个数字(在本例中为30)时对它们执行某些操作。在

  agg = collection.aggregate([{"$match":{"valid":1}}, {"$group": {"_id": {"createdby" : "$createdby" ,"addedtime" : "$addedtime", "empname" : "$empname"}, "count":{"$sum":1}}}])

  cnt = 0
  for eachAgg in agg:
    print "eachAgg = ",eachAgg
    if eachAgg['count'] >= 30:

当我运行这个脚本时

^{pr2}$

我不明白$sum聚合怎么不是整数。在


Tags: 脚本matchcount数字aggcollectionaggregatesum
1条回答
网友
1楼 · 发布于 2024-06-28 19:24:16

agg:返回包含聚合结果的更详细的dict,即:

    { 
      u'ok': 1.0, 
      u'waitedMS': 0L, 
      u'result': [<your actual aggregation result>]
    }

这就是为什么得到TypeError: string indices must be integers,因为你在dict(for eachAgg in agg)中迭代键,其中键是字符串,字符串索引必须是整数。在

它在agg['result']中的实际数据结果,请尝试:

^{pr2}$

相关问题 更多 >