MongoDB अपडेट विधि के लिए दस्तावेज़ीकरण निम्नलिखित बताता है:
तो मूल रूप से multi
पैरामीटर वह है जो update_all
. को सक्षम बनाता है आपके द्वारा लिंक किए गए प्रश्न में व्यवहार।
आपके दूसरे प्रश्न के उत्तर में:हाँ - मोंगोइड में यह सुविधा अभी निर्मित है। दस्तावेज़ीकरण संदर्भ यहां है . लेकिन आप इसे इस तरह इस्तेमाल कर सकते हैं:
User.where(:gender => "Male").update_all(:title => "Mr")
अपडेट करें
उस स्थिति में जहां आप किसी मान को सरणी फ़ील्ड पर पुश करना चाहते हैं, आपको अभी भी सीधे MongoDB लाइब्रेरी का उपयोग करने की आवश्यकता होगी, क्योंकि Mongoid update_all
विधि केवल $set
. का समर्थन करती है डेटाबेस अद्यतन विधि (जिसका उपयोग संपूर्ण सरणी को अद्यतन करने के लिए किया जा सकता है, लेकिन उस पर मान पुश नहीं किया जा सकता है)।
आपके द्वारा लिंक किए गए प्रश्न के उत्तर में उदाहरण काम करेगा, मैंने इसे उन लोगों के नीचे कॉपी किया है जो इस प्रश्न पर ठोकर खाते हैं (धन्यवाद शिंगारा !):
User.collection.update(
{'$in' => {:gender => 'Male'}},
{'$push' => {:titles => 'Mr'}},
{:multi => true}
)