使用id mongoose更新嵌套的子文档

时间:2016-08-10 06:39:24

标签: node.js mongoose

  

我需要编辑我的处方数量。这是我的示例代码。

collection.update(
{ "_id" : 1,"medications._id" : 23,"medications.prescriptions._id":77 },
{ $set : { "medications.$0.prescriptions.$1.quantity" : 30 } },
false,
true
)
  

如何编辑此内容。它没有显示任何错误。

3 个答案:

答案 0 :(得分:0)

您只能使用一个位置运算符

请参阅此文档:

https://docs.mongodb.com/manual/reference/operator/update/positional/

答案 1 :(得分:0)

相反,您可以采用更多easy to understand方式。

var updateData = {
    medications.prescriptions.quantity: 0
}

collection.update({ "_id" : 1,"medications._id" : 23,"medications.prescriptions._id":77 }, updateData, function(err, response){
    if(err){
        res.json(err);
    }
    //your success handler
});

答案 2 :(得分:0)

我面临同样的问题,因为阵列更新中的as数组需要很大的性能影响。所以,mongo db doest不支持它。重新设计您的数据库,如下面的给定链接所示。


https://pythonolyk.wordpress.com/2016/01/17/mongodb-update-nested-array-using-positional-operator/