क्या आप इसे रोबोमोंगो में टाइप कर रहे हैं? ये ऐसा लगता है! अगर ऐसा है तो यह काम नहीं करेगा। मोंगोडीबी के साथ नेस्टेड ऐरे को अपडेट करने पर मेरा नोट पढ़ें जहां मैं कहता हूं कि यह "पुराने खोल" या इसके आधार पर कुछ भी काम नहीं करता है (जो रोबोमोंगो एक खोल आधारित निर्माण है) जिस तरह से खोल सहायक विधियों को वर्तमान में कार्यान्वित किया जाता है:पी> <ब्लॉकक्वॉट>
नोट कुछ हद तक विडंबना यह है कि यह .update()
के लिए "विकल्प" तर्क में निर्दिष्ट है। और विधियों की तरह, सिंटैक्स आम तौर पर सभी हाल के रिलीज़ ड्राइवर संस्करणों के साथ संगत है।
हालांकि यह mongo
. के बारे में सच नहीं है खोल, जिस तरह से वहां विधि लागू की गई है ("विडंबना यह है कि पिछड़े संगतता के लिए") arrayFilters
तर्क को एक आंतरिक विधि द्वारा पहचाना और हटाया नहीं जाता है जो पिछले MongoDB सर्वर संस्करणों और "विरासत" .update()
के साथ "पिछड़ा संगतता" देने के लिए विकल्पों को पार्स करता है। एपीआई कॉल सिंटैक्स।
इसलिए यदि आप mongo
. में कमांड का उपयोग करना चाहते हैं शेल या अन्य "खोल आधारित" उत्पाद (विशेष रूप से रोबो 3T) आपको विकास शाखा से नवीनतम संस्करण या 3.6 या उससे अधिक के रूप में उत्पादन रिलीज की आवश्यकता है।
इसलिए यदि आप रिलीज उम्मीदवार के साथ "खेलना" चाहते हैं, तो या तो बंडल किए गए mongo
. का उपयोग करें उस संस्करण के साथ खोल या किसी भी मानक ड्राइवर के माध्यम से अपना कोड चलाएं।