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

Ala*_*405 11 mongodb

如果新值大于当前值,如何更新MongoDB文档中的字段?

有解决方案吗

db.report.update(
    { _id: 1234 },
    {
      $setIfGreater: {
        A: 10
      }
   })
Run Code Online (Sandbox Code Playgroud)

Joh*_*yHK 21

您可以使用$max运算符执行此操作:

db.report.update(
    { _id: 1234 },
    {
      $inc: { A: 5 },
      $set: {
        B: "ABC123",
      }
      $max: {
        C: 10
      }
    })
Run Code Online (Sandbox Code Playgroud)

$max运营商的字段的值更新到指定值,如果指定的值大于字段的当前值.

  • 我怎么能错过这个?当你的回答稍微提前时,它就归你了! (2认同)

Nia*_*abb 5

您可以使用$max 运算符并执行以下操作:

db.report.update(
  { _id: 1234 },
  {
    $inc: { A: 5 },
    $set: {
      B: "ABC123",
    }
    $max: {
      C: 10
    }
}
Run Code Online (Sandbox Code Playgroud)