Du måste skapa ditt variabelt tangentbord separat, eftersom JS före ES2015 inte tillåter något annat än konstanta strängar i objektets bokstavliga syntax:
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
}, ...);
REDIGERA i ES2015 är det nu möjligt att använda ett uttryck som en nyckel i en objektsliteral, med [expr]: value
syntax, och i det här fallet även med ES2015 backtick-stränginterpolation:
var stuffID = 5;
collection.update({
"id": id,
}, {
"$inc": {
[`stuff.${stuffID}`]: 1
}
}, ...);
Koden ovan fungerar i Node.js v4+