Du skal oprette dit variabelt-nøglede objekt separat, fordi JS før ES2015 ikke tillader andet end konstante strenge i objektets literal syntaks:
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
}, ...);
REDIGER i ES2015 er det nu muligt at bruge et udtryk som en nøgle i et objekt-literal ved hjælp af [expr]: value
syntaks, og i dette tilfælde også ved hjælp af ES2015 backtick-strenginterpolation:
var stuffID = 5;
collection.update({
"id": id,
}, {
"$inc": {
[`stuff.${stuffID}`]: 1
}
}, ...);
Ovenstående kode fungerer i Node.js v4+