首页 > 解决方案 > MongoDB 可以定期失败请求而不会出错吗?

问题描述

我遇到过多个 MongoDB 无法正确运行命令的情况。首先它发生在我的一个 Python 脚本中(以前从未使用相同的代码失败过)。由于命令无法正常运行,因此出现问题。我开始怀疑并在 NoSQLBooster 中手动运行它。我得到了没有错误的回应。它说acknowledged: true,matchedCount: NaNmodifiedCount: NaN。我在不更改命令的情况下再次运行它并且它起作用了。这是 MongoDB 经常发生的事情吗?我是否需要建立逻辑以确保我的命令正确执行?

如果它是相关的,这里是命令: db.users.updateMany({}, {"$set": {"f1.f2": 0}})

标签: mongodb

解决方案


虽然可能存在导致命令无法执行或其结果未正确报告的服务器错误,但更有可能的是:

  1. 您或您正在使用的库没有检查执行结果并填写了一些您认为来自服务器的占位符值。
  2. 您检查了执行结果,但没有正确执行。驱动程序应该为您处理此问题,但您可以查看服务器命令文档以了解该特定命令表示失败的方式。许多命令可能会失败的方式有很多种(写入关注错误、写入错误等)。

更新零个文档既不是错误也不是服务器故障(您可能在集合中一开始就有零个文档,或者没有一个与您提供的过滤器匹配)。


推荐阅读