簡體   English   中英

根據該文檔中的另一個字段更新所有文檔中的所有字段

[英]Update all a field in all document based on another field in that document

我的數據庫中有學生文檔。 每個文檔都是一個學生,並且具有字段amountOwedtuition

我正在嘗試將amountOwed更新為等於amountOwed + tuition.

我考慮過使用.find查詢來獲取所有學生文檔,遍歷每個文檔並更新數據庫。

我還研究並在 mongo 文檔中找到了$set(aggregation)$addFields(aggregation)但我不確定是否可以將其用於我想做的事情。

示例文檔:

{"studentName" : "Student1",

 "amountOwed" : 100,

 "tuition" : 100

},

{"studentName" : "Student2",

 "amountOwed" : 0,

 "tuition" : 500

}

Output應該是:

{"studentName" : "Student1",

 "amountOwed" : 200,

 "tuition" : 100

},

{"studentName" : "Student2",

 "amountOwed" : 500,

 "tuition" : 500

}

有沒有辦法在一個數據庫查詢中完成這一切?

也許使用updateMany

要添加值,您可以使用 Mongo 聚合查詢的$add表達式。

嘗試使用查詢:

db.collection.aggregate([
  {
    $project: {
      studentName: 1,
      tuition: 1,
      _id: 0,
      amountOwed: {
        $add: [
          "$amountOwed",
          "$tuition"
        ]
      }
    }
  }
])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM