pymongo(または少なくともドキュメント)にバグがあり、findandupdate
クエリを実行できなくなっていると思います。
これが何が起こるかです。私が走るとき:
result = db.command({
'findandmodify': 'my_collection',
'query': {'foo': 'bar'},
'update': {'$set': {'status': 'queued'}},
})
実際にサーバーに送信されるクエリは次のとおりです。
{ 'query': {'foo': 'bar'}, 'findandmodify': 'my_collection', … }
query
引数が最初で、2番目findandmodify
であることに注意してください。
しかし、これによりサーバーはスローアップします。
OperationFailure:コマンド{'クエリ':{'foo':'bar'}、'findandmodify':'my_collection'、…}失敗:そのようなコマンドはありません
サーバーfindandmodify
が最初になることを期待しているためです(BSON dictは明らかに順序付けられています)。
これに対する回避策はありますか?