मैं एक एकल दस्तावेज़ में एक सरणी के भीतर निहित एक एकल सबलेमेंट को अपडेट करने की कोशिश कर रहा हूं। मैं इसके ऐरे इंडेक्स का उपयोग करके क्षेत्र को संदर्भित करना चाहता हूं (सरणी के भीतर के तत्वों में ऐसा कोई फ़ील्ड नहीं है जिसकी मैं गारंटी दे सकता हूं जो अद्वितीय पहचानकर्ता होंगे)। ऐसा लगता है कि यह करना आसान होना चाहिए, लेकिन मैं सिंटैक्स का पता नहीं लगा सकता।
यहाँ मैं छद्म जोंस में क्या करना चाहता हूँ।
इससे पहले:
{
_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 }
)
लेकिन यह काम नहीं करता है। मैंने मोंगोडब डॉक्स को खोजने के लिए बहुत लंबा रास्ता तय किया है, और इस सिंटैक्स पर विभिन्न भिन्नताओं की कोशिश कर रहा है (जैसे उपयोग करना $slice
, आदि)। मैं इस तरह के अद्यतन को MongoDB में कैसे पूरा करूँ, इसका कोई स्पष्ट विवरण नहीं मिल सकता है।