更新嵌套文档的所有字段

时间:2020-07-21 13:17:00

标签: mongodb mongodb-query

我想增加totalUnreadMessages的所有字段。

示例数据:

{
  "_id": ObjectId("5e7f4b739d22a0ffd57afc5f"),
  "totalUnreadMessages": {
    "5e5008406ddd5061bf8c47fe": 0,
    "5e7f4b739d22a0ffd57afc5f": 0
  }
}

有没有办法在一个查询中做到这一点?还是可以获取totalUnreadMessages的字段,对其进行迭代并执行查询?或者,也许我可以为(regex)模式匹配字段?

1 个答案:

答案 0 :(得分:0)

不确定是否可以通过原始查询来实现,但是您可以混合使用一些javascript并执行以下操作:

db.collection.find({}).forEach(function(doc) {
    for(prop in doc["totalUnreadMessages"]) {
        ++doc["totalUnreadMessages"][prop]
    }
    db.collection.save(doc)
})