使用MongoDB跟踪正在进行的更新的正确方法是什么?

时间:2012-12-07 19:52:21

标签: mongodb

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

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

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

如果之前已经解决过这个问题我很抱歉,但我很难找到这些信息。我可能只是使用了错误的术语。

1 个答案:

答案 0 :(得分:1)

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