Трябва да създадете вашия обект с променлив ключ отделно, защото JS преди ES2015 не позволява нищо друго освен постоянни низове в синтаксиса на обектния литерал:
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+