mongodb 在mongosh中更新文档时动态计算值

pod7payv  于 2022-11-03  发布在  Go
关注(0)|答案(1)|浏览(115)

我尝试使用mongodb compass中的mongo shell来更新一些文档。我使用updateMany函数来完成此操作。我希望在更新字段时计算一些值。例如
这是一个示例文档
科目

capital: 100,
  deposit: 0

我想用这样的方法

db.account.updateMany({}, {$set: {deposit: this.deposit + this.capital}})

但这样不行

lymnna71

lymnna711#

您需要使用aggregated pipeline updates syntax来实现这一点,这是将更新中的现有文档数据作为值使用的唯一方法。语法(在您的示例中)仍然非常相似,如下所示:

db.account.updateMany(
{},
[
  {
    $set: {
      deposit: {
        $add: [
          "$deposit",
          "$capital"
        ]
      }
    }
  }
])

Mongo Playground

相关问题