在mongodb更新中使用一个variables
使用meteor,我试图执行如下更新:
Items.update(Session.get('selectedItem'), {'$set': {'directions.0.name': area.value}})
但我正在努力如何dynamic地设置方向的数组索引,如下所示:
var index = //a value determined dynamically Items.update(Session.get('selectedItem'), {'$set': {'directions[index]name': area.value}})
这不起作用,因为[index]被包装在一个string中。 我也试graphics成一个自定义string,如下所示:
var string = 'directions.'+itemIndex+'.name' Items.update(Session.get('selectedItem'), {'$set': {string: area.value}})
但是这不起作用。 任何想法如何做到这一点?
您需要以编程方式构build您的$set
对象:
var setModifier = { $set: {} }; setModifier.$set['directions.' + index + '.name'] = area.value; Items.update(Session.get('selectedItem'), setModifier);
更新
如果您的JavaScript环境支持计算属性名称 (例如,node.js 4+),则可以一步完成此操作:
Items.update(Session.get('selectedItem'), { $set: { ['directions.' + index + '.name']: area.value }});