MongoDB - 如果新值更大,则更新字段

18

如何在MongoDB文档中仅在新值大于当前值时更新字段?

有什么解决方案吗?

db.report.update(
    { _id: 1234 },
    {
      $setIfGreater: {
        A: 10
      }
   })
2个回答

31
您可以使用$max操作符来实现此目的:
db.report.update(
    { _id: 1234 },
    {
      $inc: { A: 5 },
      $set: {
        B: "ABC123",
      }
      $max: {
        C: 10
      }
    })

$max操作符会将字段的值更新为指定值,但仅当该指定值大于当前字段的值时。


2
我怎么会错过这个?这是因为你的答案稍微早了一点! - Alain1405

5
你可以使用 $max 操作符 并执行类似以下的操作:
db.report.update(
  { _id: 1234 },
  {
    $inc: { A: 5 },
    $set: {
      B: "ABC123",
    }
    $max: {
      C: 10
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接