当前位置:  开发笔记 > 编程语言 > 正文

pymongo:findandmodify - 返回"no such command"

如何解决《pymongo:findandmodify-返回"nosuchcommand"》经验,为你挑选了1个好方法。

我相信pymongo(或者至少是文档)中存在一个错误,它使得无法运行findandupdate查询.

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

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

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

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

请注意,query参数是第一个,findandmodify第二个.

但这导致服务器抛出:

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

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

这有什么工作吗?



1> mstearn..:

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

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


参考"当前(构建)"网址http://api.mongodb.org/python/current/api/bson/son.html
推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有