आप वाकई बल्कराइट ()
दो "updateMany"
. का उपयोग करके इसके बजाय इसके भीतर बयान। अपडेट स्टेटमेंट के किसी भी रूप में "वैकल्पिक चयन" करने के लिए एकत्रीकरण अभिव्यक्तियों का उपयोग नहीं किया जा सकता है।
db.country.bulkWrite([
{ "updateMany": {
"filter": { "pop": { "$lt": 20000000 } },
"update": { "$set": { "country": "Small Country" } }
}},
{ "updateMany": {
"filter": { "pop": { "$gt": 20000000 } },
"update": { "$set": { "country": "Large Country" } }
}}
])
SERVER-6566 पर अभी भी "फ़ीचर अनुरोध" बकाया है "सशर्त वाक्यविन्यास" के लिए, लेकिन यह अभी तक हल नहीं हुआ है। "बल्क" एपीआई वास्तव में इस अनुरोध के उठने के बाद पेश किया गया था, और वास्तव में इसे अनुकूलित किया जा सकता है जैसा कि अधिक या कम करने के लिए दिखाया गया है वही बात।
साथ ही $out
का इस्तेमाल करना
एक एकत्रीकरण विवरण में जैसा कि अन्यथा सुझाव दिया गया था "अपडेट" . का विकल्प नहीं है और वर्तमान में केवल "नए संग्रह" को ही लिख सकता है। MongoDB 4.2 के बाद से निर्धारित परिवर्तन $out
की अनुमति देगा। कोड>
वास्तव में "अपडेट" . करने के लिए एक मौजूदा संग्रह, हालांकि यह केवल वहीं होगा जहां अद्यतन किया जाने वाला संग्रह एकत्रीकरण पाइपलाइन से डेटा एकत्र करने के भीतर उपयोग किए जाने वाले किसी भी अन्य संग्रह से अलग हो। तो यह संभव नहीं है उसी को अपडेट करने के लिए . के लिए एक एकत्रीकरण पाइपलाइन का उपयोग करने के लिए संग्रह जैसा आप पढ़ रहे हैं।
संक्षेप में, उपयोग करें>बल्कराइट () ।