Objekt s variabilním klíčem musíte vytvořit samostatně, protože JS před ES2015 nepovoluje nic jiného než konstantní řetězce v doslovné syntaxi objektu:
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
}, ...);
UPRAVIT v ES2015 je nyní možné použít výraz jako klíč v objektovém literálu pomocí [expr]: value
syntaxe a v tomto případě také pomocí interpolace řetězce backtick ES2015:
var stuffID = 5;
collection.update({
"id": id,
}, {
"$inc": {
[`stuff.${stuffID}`]: 1
}
}, ...);
Výše uvedený kód funguje v Node.js v4+