【问题标题】:How to update deep array in mongoose?如何更新猫鼬中的深度数组?
【发布时间】:2016-11-09 07:55:42
【问题描述】:

我在 nodejs 中使用猫鼬... 我想更新深层数组但无法正确更新.. 该字段的架构如下...

case : [{
visit : [{
          visit_no : Number,
          treat : {
          rep : [{name : String,img :{type : String,match : /^http:\/\//i}}]
          }
}]}]

我在https://jira.mongodb.org/browse/SERVER-831 的帮助下应用了查询,如下所示...

update({"_id" : fields.id,"case._id" : fields.case,"case.visit._id" : fields.visit,"case.visit.treat.rep._id" : req.body.PInv},{$set : {"case.$0.visit.$1.treat.rep.$2.img" : req.body.img}})

但是不会显示错误也不会给出正确的错误.. 我需要帮助解决这个问题

【问题讨论】:

    标签: node.js mongodb mongoose mongoose-populate


    【解决方案1】:

    这可能与 mongoose 不允许您在每个键中多次使用 $ 运算符有关。使用DocumentArray.id(id) 方法检查子文档。查看 Noam El 对this 问题的回答。在使用上述方法之前,它可能会帮助您在最外层的文档上执行 findById()。

    希望这有助于为您指明正确的方向!

    【讨论】:

      猜你喜欢
      • 2015-04-29
      • 1970-01-01
      • 2015-01-27
      • 2021-07-26
      • 2021-12-28
      • 2023-03-04
      • 2017-05-20
      • 1970-01-01
      • 2022-01-26
      相关资源
      最近更新 更多