django - Mongoengine 原始 find_and_modify 查询给出 "Must either update or remove"异常

标签 django mongodb pymongo mongoengine

我正在使用 Django + mongoengine 我想更新我的 Bookscollection 文档中的书籍(嵌入式文档)计数。我希望更新查询返回完整的对象。因此我正在使用“find_and_modify”。但即使我使用更新或删除字段。我仍然收到“必须更新或删除”的错误消息。 这是我的代码片段 -

for book_id in book_list:
        book_col = BookCollection._get_collection().find_and_modify({
                        'query': {'coll_id':book_coll_id,'book.book_id':book_id},
                        'update':{'$inc':
                             {'book.$.quantity' : 1}
                         },
                        'new':True
        })

这里有什么问题吗?

最佳答案

find_and_modify采用关键字参数,这就是您收到该错误消息的原因。

for book_id in book_list:
    book_col = BookCollection._get_collection().find_and_modify({
                        query={'coll_id':book_coll_id,'book.book_id': book_id},
                        update={'$inc': {'book.$.quantity' : 1}},
                        new=True
                })

您还应该知道 find_and_modify 在 pymongo3.0 中已弃用,您应该使用 find_one_and_update如果你的潜水员是pymongo 2.9或更新版本。

关于django - Mongoengine 原始 find_and_modify 查询给出 "Must either update or remove"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33053748/

相关文章:

python - 如何将 Pymodm 对象转换为 JSON?

python - 如何选择PyMongo中的所有数据?

python - 将日期对象放入 MongoDB,使用 pymongo 查询时返回 float

python - 设置特定子字段的并集之间的差异

python - 尝试将模型从应用迁移到应用时出现 Django 导入错误

python - Django 模型 "blob"字段

django - uwsgi + nginx + Django : ImportError: No module named django. core.wsgi

python - Django 过滤查询解决方案

mongodb map reduce 以按日期/日期获取唯一性

mongodb - 大数据集的Mongo磁盘读取瓶颈和IOPS限制