0

我有一个包含一堆代表各种项目的文档的集合。偶尔,我需要更新项目属性,但更新需要一些时间。更新属性时,该项目会获得一个新的时间戳,说明它何时被修改。如果我一次运行一个更新,那么就没有问题。但是,如果我想同时运行多个更新进程,有可能一个进程开始更新项目,但下一个进程仍然认为项目需要更新并开始更新它。

一种解决方案是在检索到更新后立即标记该项目(findAndModify),但是为每个文档添加一个完整的额外字段只是为了跟踪当前正在更新的项目似乎很浪费。

这应该是一个非常普遍的问题。也许有一些内置函数可以解决这个问题?如果没有,是否有标准的既定方法来处理它?

如果之前已解决此问题,我深表歉意,但我很难找到此信息。我可能只是使用了错误的术语。

4

1 回答 1

1

您可以使用db.currentOp()检查更新是否已经在进行中。

于 2012-12-07T20:13:22.357 回答