繁体   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