我相信 pymongo (或者至少是文档)中存在一个错误,导致无法运行findandupdate
查询。
这就是发生的事情。当我运行时:
result = db.command({
'findandmodify': 'my_collection',
'query': {'foo': 'bar'},
'update': {'$set': {'status': 'queued'}},
})
实际发送到服务器的查询是:
{ 'query': {'foo': 'bar'}, 'findandmodify': 'my_collection', … }
请注意,query
参数是first,并且findandmodify
是second。
但这会导致服务器抛出:
OperationFailure: command { 'query': {'foo': 'bar'}, 'findandmodify': 'my_collection', ... } failed: no such cmd
因为服务器希望findandmodify
是第一个(显然,BSON dicts 是有序的)。
有什么解决方法吗?