मैं एक mongodb दस्तावेज़ में एक सरणी के भीतर निहित एकल उपखंड को अद्यतन करने का प्रयास कर रहा हूं। मैं अपने सरणी अनुक्रमणिका का उपयोग करके क्षेत्र का संदर्भ देना चाहता हूं (सरणी के भीतर तत्वों में कोई फ़ील्ड नहीं है जो मैं गारंटी दे सकता हूं अद्वितीय पहचानकर्ता होगा)। ऐसा लगता है कि ऐसा करना आसान होना चाहिए, लेकिन मैं वाक्यविन्यास को समझ नहीं सकता।MongoDB: मैं सरणी के भीतर इंडेक्स द्वारा संदर्भित एक सरणी में एक एकल उपखंड कैसे अपडेट करूं?
यहां मैं छद्म-जेसन में क्या करना चाहता हूं।
से पहले:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... old content B ... },
{ ... old content C ... }
]
}
के बाद:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... NEW content B ... },
{ ... old content C ... }
]
}
क्वेरी की तरह लगता है कुछ इस तरह होना चाहिए:
//pseudocode
db.my_collection.update(
{_id: ObjectId(document_id), my_array.1 : 1 },
{my_array.$.content: NEW content B }
)
लेकिन यह काम नहीं करता। मैंने mongodb दस्तावेज़ों को खोजने में बहुत लंबा समय बिताया है, और इस वाक्यविन्यास पर विभिन्न भिन्नताओं की कोशिश कर रहा है (उदाहरण के लिए $slice
आदि का उपयोग करना)। मुझे MongoDB में इस प्रकार के अपडेट को पूरा करने के बारे में कोई स्पष्ट स्पष्टीकरण नहीं मिल रहा है।
नहीं .. .. यह था वास्तव में अज्ञात – Moumit