簡體   English   中英

如何在一次查詢中對mongodb中的多個字段和多個文檔進行遞增

[英]How to increment value in multiple fields and multiple documents in mongodb in one query

我有一個代表課程的 object

 {
    "_id": "62ad8ac4a5523541d78df217",
    "lessonID": "35d02fc5-94dd-48e7-a315-7dcea6ac6806",
    "teachers": [
        "629232d2fc8fa8646b21cf3d"
    ],
    "students": [
        "62924d0a6055ad4d2533577b"
    ],
    "subject": "English",
    "start": 1655515800000,
    "end": 1655517600000,
    "roomNumber": "3",
    "venue": "Elmwood Park",
    "attendance": [
        "62924d0a6055ad4d2533577b"
    ],
    "paid": false,
    "__v": 0
},       
           

我想要做的是找到所有具有相同“lessonID”的文檔並更新“開始”和“結束”(時間戳)。

我想在每個文檔上增加或減少一定數量的值

我已經坐了一段時間了,我想過這樣做:

  • 查找與我的查詢匹配的所有文檔
  • 刪除所有找到的文件
  • 通過數組映射
  • 插入映射的文檔數組

這聽起來效率極低(如果任何步驟失敗,它會導致數據重復或丟失)......必須有更好的方法來做到這一點。

正如@Gibbs 建議的那樣,只需使用$inc

db.collection.update({
  "lessonID": "35d02fc5-94dd-48e7-a315-7dcea6ac6806"
},
{
  $inc: {start: amountStartInc, end: amountEndInc}
})

playground 示例中查看它是如何工作的

暫無
暫無

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

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