我想将mongodb文档内的对象对象内的字段增加1。
var stuffID = 5
collection.update({
"id": id,
},
{
'$inc': {
'stuff.stuffID': 1
}
},
function(err, doc) {
res.end('done');
});
我需要将stuffID设置为变量。有什么办法吗?谢谢。
如果有帮助,可以使用node-mongodb-native。
如果您要结束投票,可以解释一下您不了解的内容吗?
最佳答案
您需要分别创建可变键对象,因为ES2015之前的JS不允许使用对象文字语法中的常量字符串以外的任何形式:
var stuffID = 5
var stuff = {}; // create an empty object
stuff['stuff.' + stuffID] = 1; // and then populate the variable key
collection.update({
"id": id,
}, {
"$inc": stuff // pass the object from above here
}, ...);
在ES2015中编辑,现在可以使用
[expr]: value
语法将表达式用作对象文字中的键,在这种情况下,还可以使用ES2015反引号字符串插值:var stuffID = 5;
collection.update({
"id": id,
}, {
"$inc": {
[`stuff.${stuffID}`]: 1
}
}, ...);
上面的代码可在Node.js v4 +中运行