【问题标题】:Mongoose: How to update value in array at index given from variable? [duplicate]Mongoose:如何在变量给定的索引处更新数组中的值? [复制]
【发布时间】:2018-02-14 06:36:00
【问题描述】:
options.votes 是一个数组。
此代码有效:
Poll.findOneAndUpdate({title},{$inc:{'options.votes.0':1}}
我需要将 0 替换为变量。
这不起作用:
const query = 'options.votes.'+variable
Poll.findOneAndUpdate({title},{$inc:{query:1}}
感谢您的帮助
【问题讨论】:
标签:
javascript
arrays
node.js
mongodb
mongoose
【解决方案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}})