Mar*_*rat 8 python mongodb pymongo
我在集合中有一组条目,goals如下所示:
{"user": "adam", "position": "attacker", "goals": 8}
{"user": "bart", "position": "midfielder", "goals": 3}
{"user": "cedric", "position": "goalkeeper", "goals": 1}
Run Code Online (Sandbox Code Playgroud)
我想计算所有目标的总和.在MongoDB shell中我这样做:
> db.goals.aggregate([{$group: {_id: null, total: {$sum: "$goals"}}}])
{ "_id" : null, "total" : 12 }
Run Code Online (Sandbox Code Playgroud)
现在我想在Python中使用pymongo做同样的事情.我试着用两db.goals.aggregate()和db.goals.group(),但没有成功为止.
非工作查询:
> query = db.goals.aggregate([{"$group": {"_id": None, "total": {"$sum": "$goals"}}}])
{u'ok': 1.0, u'result': []}
> db.goals.group(key=None, condition={}, initial={"sum": "goals"}, reduce="")
SyntaxError: Unexpected end of input at $group reduce setup
Run Code Online (Sandbox Code Playgroud)
任何想法如何做到这一点?
Anz*_*zel 11
只需使用带聚合的管道.
pipe = [{'$group': {'_id': None, 'total': {'$sum': '$goals'}}}]
db.goals.aggregate(pipeline=pipe)
Out[8]: {u'ok': 1.0, u'result': [{u'_id': None, u'total': 12.0}]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10378 次 |
| 最近记录: |