अपनी क्वेरी में आप स्थितीय ऑपरेटर . का उपयोग कर रहे हैं ($ साइन) एक विशेष वीडियो को _id द्वारा स्थानीयकृत करने के लिए और फिर आप एक आइटम को रिपोर्ट में धकेलना चाहते हैं।
समस्या यह है कि MongoDB को यह नहीं पता है कि आप किस वीडियो को अपडेट करने का प्रयास कर रहे हैं क्योंकि आपने जो पथ निर्दिष्ट किया है ( Seasons.episodes.videos.$.reports ) में दो अन्य सरणियाँ (सीज़न और एपिसोड) शामिल हैं।
जैसा कि दस्तावेज़ीकरण में कहा गया है कि आप इस ऑपरेटर का एक से अधिक बार उपयोग नहीं कर सकते हैं
यह सीमा आपकी स्थिति को जटिल बनाती है। आप अभी भी अपनी रिपोर्ट अपडेट कर सकते हैं लेकिन आपको बाहरी सरणियों की सटीक अनुक्रमणिका जानने की आवश्यकता है। तो निम्नलिखित अद्यतन कार्य उदाहरण होगा:
db.movies.update({'seasons.episodes.videos._id': data._id}, {$push: {'seasons.0.episodes.0.videos.$.reports': data.details}})
वैकल्पिक रूप से आप इस दस्तावेज़ के बड़े हिस्से को node.js में अपडेट कर सकते हैं या तकनीकी सीमाओं को ध्यान में रखते हुए अपने स्कीमा डिज़ाइन पर पुनर्विचार कर सकते हैं।