我想数一下与pymongo相匹配的记录。我查阅了文档:https://docs.mongodb.com/manual/reference/operator/aggregation/group/#group-by-month-day-and-year
我知道我应该做这样的事:
db.foo_baz.aggregate([{'$group': {'_id': '$baz_id', 'count': {'$sum': 1}}}])但是,我得到了这个错误:
File "/usr/lib/python3.6/site-packages/mongomock/collection.py", line 1531, in aggregate
from_field = key.replace('$', '')
AttributeError: 'int' object has no attribute 'replace'添加评论
我认为pymongo会将其评估为mongodb声明:
db.foo_baz.aggregate({{$group: {_id: '$baz_id', count: {$sum: 1}}}])这给了我从mongodb控制台运行时的预期结果,在我的例子中是:{"_id" : NumberInt("1234"), "count" : 1}。
我做错什么了?我使用pymongo3.4和python3.6以及mongomock 3.7。
我还尝试用不崩溃的1替换"1",但结果不正确:({"_id" : NumberInt("1234"), "count" : NumberInt("0")})
发布于 2017-04-10 12:19:40
很明显,这是mongomock中的一个bug,在升级到3.8之后,我得到了预期的行为。
https://stackoverflow.com/questions/43322788
复制相似问题