【问题标题】:MongoDB UpdateManyMongoDB UpdateMany
【发布时间】:2021-12-23 05:36:12
【问题描述】:

我需要更新 mongo 中的各个字段,创建一个新字段。示例:

db.paymentTransaction.updateOne(
    {status: "PARTIALLY_REFUNDED"},
    {amount: EXISTS} 
    {
        $set: {
            "amountRefundRemaining": {
                FIELD_B  - FIELD_A
            }
        }
    }
)

我需要创建字段 amountRefundRemaining。但是我需要用减去 Field_B 减去 Field_A 的结果来填充这个新字段。但我只需要在 status=PARTIALLY_REFUNDED 且金额存在的情况下执行此操作

我正在使用 mongoDB 4.4。 有什么想法吗?

【问题讨论】:

  • 你能详细说明你需要什么吗?
  • 当然...我需要创建字段 amountRefundRemaining。但是我需要用减去 Field_B 减去 Field_A 的结果来填充这个新字段。但我只需要在 status=PARTIALLY_REFUNDED 且数量存在的情况下执行此操作。
  • 您应该在问题中添加此评论。

标签: mongodb mongodb-query aggregation-framework


【解决方案1】:

查询

  • 如果status=PARTIALLY_REFUNDEDamount exists
  • 添加字段amountRefundRemaining,值为FIELD_B - FIELD_A

*管道更新需要 MongoDB >= 4.2

Test code here

db.collection.update({
  "status": "PARTIALLY_REFUNDED",
  "amount": {"$exists": true}},
[
  {
    "$set": {
      "amountRefundRemaining": {
        "$subtract": [
          "$FIELD_B",
          "$FIELD_A"
        ]
      }
    }
  }
],
{"multi": true})

【讨论】:

猜你喜欢
  • 2021-08-29
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多