我正在使用 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/