आपको अपनी अलग-अलग कुंजी वाली वस्तु को अलग से बनाने की आवश्यकता है, क्योंकि ES2015 से पहले JS ऑब्जेक्ट शाब्दिक सिंटैक्स में निरंतर स्ट्रिंग्स के अलावा कुछ भी अनुमति नहीं देता है:
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+ में काम करता है