mongodb - MongoDB 可以定期失败请求而不会出错吗?
问题描述
我遇到过多个 MongoDB 无法正确运行命令的情况。首先它发生在我的一个 Python 脚本中(以前从未使用相同的代码失败过)。由于命令无法正常运行,因此出现问题。我开始怀疑并在 NoSQLBooster 中手动运行它。我得到了没有错误的回应。它说acknowledged: true
,matchedCount: NaN
和modifiedCount: NaN
。我在不更改命令的情况下再次运行它并且它起作用了。这是 MongoDB 经常发生的事情吗?我是否需要建立逻辑以确保我的命令正确执行?
如果它是相关的,这里是命令:
db.users.updateMany({}, {"$set": {"f1.f2": 0}})
解决方案
虽然可能存在导致命令无法执行或其结果未正确报告的服务器错误,但更有可能的是:
- 您或您正在使用的库没有检查执行结果并填写了一些您认为来自服务器的占位符值。
- 您检查了执行结果,但没有正确执行。驱动程序应该为您处理此问题,但您可以查看服务器命令文档以了解该特定命令表示失败的方式。许多命令可能会失败的方式有很多种(写入关注错误、写入错误等)。
更新零个文档既不是错误也不是服务器故障(您可能在集合中一开始就有零个文档,或者没有一个与您提供的过滤器匹配)。
推荐阅读
- java - 如何为 tomcat webserver 连接启用 TLS1.2 我们使用的是 tomcat 7.0.82
- python - 如何在具有对数刻度和添加自定义网格线的同时在二进制上显示轴
- mongodb - 重用 mongodb 连接时处理上下文
- opencv - 为什么 OpenCV 的 Opticalflow 返回流在完全相同的图片之间?
- javascript - 如何使用 Electron 和 Vanilla Javascript 进行路由
- excel - Excel:在长度的中间找到
- android - 如何完全删除选项卡中的活动选项卡指示器?
- angular - 在严格模式下,一个对象字面量不能有多个同名的属性。属性“路径”说是重复的
- python - 无头 Chrome 驱动程序无法在 python Selenium 驱动程序中获取 Instagram 页面
- mysql - 使用 Laravel Sai 设置跨数据库外键