Mongoose:如何在变量给出的索引处更新数组中的值?

时间:2017-09-05 21:53:50

标签: javascript arrays node.js mongodb mongoose

options.votes是一个数组。

此代码有效:

Poll.findOneAndUpdate({title},{$inc:{'options.votes.0':1}}

我需要为变量替换0。

这不起作用:

const query = 'options.votes.'+variable
Poll.findOneAndUpdate({title},{$inc:{query:1}}

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

它只是一个带有字符串键的对象

var obj = {};

obj['options.votes.'+variable] = 1;

Poll.findOneAndUpdate({title},{$inc:obj})

或使用ES2015和动态密钥

const query = 'options.votes.'+variable;
Poll.findOneAndUpdate({title},{$inc:{[query]:1}})