U moet uw object met variabele sleutel afzonderlijk maken, omdat JS vóór ES2015 niets anders toestaat dan constante tekenreeksen in de letterlijke syntaxis van het object:
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
}, ...);
BEWERKEN in ES2015 is het nu mogelijk om een expressie te gebruiken als een sleutel in een letterlijke object, met behulp van [expr]: value
syntaxis, en in dit geval ook met behulp van ES2015 backtick string-interpolatie:
var stuffID = 5;
collection.update({
"id": id,
}, {
"$inc": {
[`stuff.${stuffID}`]: 1
}
}, ...);
De bovenstaande code werkt in Node.js v4+