我尝试使用mongodb compass中的mongo shell来更新一些文档。我使用updateMany函数来完成此操作。我希望在更新字段时计算一些值。例如这是一个示例文档科目
capital: 100, deposit: 0
我想用这样的方法
db.account.updateMany({}, {$set: {deposit: this.deposit + this.capital}})
但这样不行
lymnna711#
您需要使用aggregated pipeline updates syntax来实现这一点,这是将更新中的现有文档数据作为值使用的唯一方法。语法(在您的示例中)仍然非常相似,如下所示:
db.account.updateMany( {}, [ { $set: { deposit: { $add: [ "$deposit", "$capital" ] } } } ])
Mongo Playground
1条答案
按热度按时间lymnna711#
您需要使用aggregated pipeline updates syntax来实现这一点,这是将更新中的现有文档数据作为值使用的唯一方法。语法(在您的示例中)仍然非常相似,如下所示:
Mongo Playground