将变量传递给mongo修饰符

时间:2012-06-09 09:07:10

标签: javascript mongodb meteor

我正在尝试更新文档中的数组元素,但我希望能够动态控制哪个元素,这样可行:

var doc = Collection.findOne({...});  
Collection.update({_id: doc._id}, {$set: {"field.1.subfield": 10}});  

但是我希望能够将javascript变量传递给“field.1.subfield”中的1

请帮忙! 感谢

1 个答案:

答案 0 :(得分:3)

这应该可以解决问题,将对象解析为$ set。

var n = {};
n['field.'+i+'.subfield'] = 10;
Collection.update({_id: doc._id}, {$set:n});

如果您遇到问题请与我们联系。