将参数传递给数组更新程序方法{$ set:{" parameters":data}}

时间:2017-02-22 01:27:55

标签: javascript node.js mongodb mongoose

Comanda.findOneAndUpdate(id,{$set: {"orden.0.fondos.2.estadoitem": estado}}, {}, function(err, comanda)

我需要间接地改变那个" 2"在

$set: {"orden.0.fondos.2.estadoitem" 

无论我做什么,我都不能......这将保存我的生活= / ..

我已经尝试了一切,调用var pos = 2;然后$ set:{" orden.0.fondos.pos.estadoitem"也作为字符串pos =" 2&#34 ;;似乎没有任何作用

先谢谢

2 个答案:

答案 0 :(得分:0)

似乎orden是一个数组,所以fondos。

你可以尝试

var doc = findOne({_id: id});
doc.orden[0].fondos[2] = 'anything you want';
doc.save((err,result)=>{})

答案 1 :(得分:0)

您可以动态创建$set字段:

var set = { "$set": {} };
set.$set["orden.0.fondos." + pos + ".estadoitem"] = estado;

Comanda.findOneAndUpdate(id, set, {}, function(err, comanda) {

})