加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – pymongo:findandmodify – 返回“no such command”

发布时间:2020-12-20 12:16:23 所属栏目:Python 来源:网络整理
导读:我相信pymongo(或者至少是文档)中存在一个错误,它使得无法运行findandupdate查询. 这是发生了什么.当我跑: result = db.command({ 'findandmodify': 'my_collection','query': {'foo': 'bar'},'update': {'$set': {'status': 'queued'}},}) 实际发送到服务
我相信pymongo(或者至少是文档)中存在一个错误,它使得无法运行findandupdate查询.

这是发生了什么.当我跑:

result = db.command({
        'findandmodify': 'my_collection','query': {'foo': 'bar'},'update': {'$set': {'status': 'queued'}},})

实际发送到服务器的查询是:

{ 'query': {'foo': 'bar'},'findandmodify': 'my_collection',… }

请注意,查询参数是第一个,而findandmodify是第二个.

但这导致服务器抛出:

OperationFailure: command { 'query': {'foo': 'bar'},… } failed: no such cmd

因为服务器期望findandmodify是第一个(BSON dicts显然是有序的).

这有什么工作吗?

解决方法

对于没有内置排序字典类型的语言,mongo驱动程序包含一个.在python中是SON类型: http://api.mongodb.org/python/1.4%2B/api/pymongo/son.html.您将需要对所有命令使用它.

如果仍然失败,请确保您使用的是最新版本的数据库,因为findandmodify是一项新功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读