我在nodejs中使用mongoose ... 我想更新深度数组,但无法正确更新.. 该字段的架构如下......
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}})
但是不会显示错误也不会给出正确的错误.. 我将需要这个问题的帮助
答案 0 :(得分:0)
它可能与mongoose有关,不允许你每个键多次使用$运算符。使用DocumentArray.id(id)方法检出以搜索子文档。查看Noam El对this问题的回答。在使用上述方法之前,它可能会帮助您在最外层文档上执行findById()。
希望这有助于指明你正确的方向!