2012-09-12 12 views
25

उल्का का उपयोग करना, मैं निम्नलिखित की तरह एक अद्यतन प्रदर्शन करने के लिए कोशिश कर रहा हूँ का उपयोग कर:MongoDB अद्यतन में एक चर

Items.update(Session.get('selectedItem'), {'$set': {'directions.0.name': area.value}}) 

लेकिन मैं कैसे की तरह कुछ के साथ गतिशील रूप दिशाओं की सरणी सूचकांक स्थापित करने के लिए, के साथ संघर्ष कर रहा हूँ यह:

var index = //a value determined dynamically 
Items.update(Session.get('selectedItem'), {'$set': {'directions[index]name': area.value}}) 

यह काम नहीं करता है क्योंकि [अनुक्रमणिका] एक स्ट्रिंग में लपेटा गया है। मैंने कस्टम स्ट्रिंग बनाने की भी कोशिश की, जैसे:

var string = 'directions.'+itemIndex+'.name' 
Items.update(Session.get('selectedItem'), {'$set': {string: area.value}}) 

लेकिन यह काम नहीं करता है। यह कैसे करना है इस पर कोई विचार? आपकी जावास्क्रिप्ट पर्यावरण computed property names (जैसे Node.js 4), तो आप एक कदम में यह कर सकते हैं का समर्थन करता है, तो

var setModifier = { $set: {} }; 
setModifier.$set['directions.' + index + '.name'] = area.value; 
Items.update(Session.get('selectedItem'), setModifier); 

अद्यतन:

उत्तर

48

आप प्रोग्राम के रूप में अपने $set वस्तु का निर्माण करने की जरूरत है :

Items.update(Session.get('selectedItem'), { $set: { 
    ['directions.' + index + '.name']: area.value 
}}); 
+1

धन्यवाद..यह कुछ के लिए आसान प्रतीत हो सकता है, लेकिन मैं सिर्फ मोंगोडब सीख रहा हूं। – Goddard

संबंधित मुद्दे