python - 使用 mongoengine 成功操作 MongoDB 的返回值是多少?

标签 python mongodb mongoengine

我正在尝试制定规则和/或考虑 mongoengine 返回什么作为操作的成功代码。我可能是错的,但根据我的测试,有时“操作成功执行”返回 1,有时返回 0。这有什么规则吗?

在 mongoengine 文档中没有提及有关数据库操作的返回值。

我只想构建我的应用程序,并确定如果我运行:

result = MyDocumentClass.objects(id=document_id).update_one(**update_dict)

或者:

result = MyDocumentClass.objects(id=document_id).delete()

结果=1(或0,以SUCCESS代码为准),该操作肯定成功了。

最佳答案

根据source code , update()返回更新文档的数量,delete()不返回任何内容(换句话说,返回 None)。

我个人认为判断操作是否成功最可靠的方法是看命令是否抛出异常。例如:

try:
    MyDocumentClass.objects(id=document_id).update_one(**update_dict)
    result = 1
except mongoengine.errors.OperationError:
    result = 0
    # process exception (log, for example)

注意:为了使 MongoEngine 不会静默失败并抛出异常,您需要通过设置 write_concern 来启用 safe 模式论证,另见:

关于python - 使用 mongoengine 成功操作 MongoDB 的返回值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24868654/

相关文章:

django - 在安装 Django-nonrel 之前是否需要卸载 Django 1.3?

python - 使用Python检索Excel中的标题

Python 窗口路径斜线

javascript - 将 mongodb 集合项添加到不和谐嵌入中

java mongodb 3.0 : find value in internal array of documents

python - mongoengine.fields.配置不当 : PIL library was not found

python - Flask-Admin 与 mongoengine - 如何在 View 上设置 “persistent filter”?

python - 展平层的输入必须是张量

python - FastAPI:如何仅为特定端点启用 CORS?

shell - 在 mongo shell 中取消设置变量