उनमें से दोनों रूबी के लिए महान मोंगोडीबी पुस्तकालय हैं। लेकिन अगर आप स्विच करना चाहते हैं, तो यहां कुछ नोट दिए गए हैं:
MongoMapper ORM को Mongoid ORM में माइग्रेट करना - नोट्स
-
डेटाबेस कनेक्शन को कॉन्फ़िगर करें।
-
कॉन्फ़िगरेशन yaml फ़ाइल बदलें (प्रतिकृति कॉन्फ़िगरेशन शामिल है)।
-
Mongoid विशिष्ट विकल्पों को कॉन्फ़िगर करें। जैसे -
raise_not_found_error: false. यदि आप हर बार कोई त्रुटि नहीं चाहते हैं तो कोई क्वेरी कुछ भी नहीं लौटाती है... -
सभी मॉडल परिभाषाएं बदलें -
include MongoMapper::Documentकरने के लिएinclude Mongoid::Document -
सभी फ़ील्ड परिभाषाओं के लिए प्रारूप बदलें।
-
मोंगोइड में, आपको टाइमस्टैम्प निर्दिष्ट करना चाहिए:
include Mongoid::Timestamps -
सत्यापन बदलें। उदाहरण:
:in => ARRAY, होगा:validates :name, presence: true, inclusion: { in: ARRAY } -
अनुक्रमणिका बदलें।
-
ऑर्डर_बाय प्रारूप बदलें। उदा:MM:
Model.all(:order => 'name'). Mongoid:Model.order_by('name ASC') -
Errorमोंगोइड में एक कीवर्ड है। तो अगर आपके पासError. नाम का मॉडल है , आपको इसे बदलना चाहिए। -
दूसरे रत्न का उपयोग करते हुए पेजिनेशन प्रारूप अलग है।
-
MM में प्राथमिक कुंजी अनुक्रमणिका प्रविष्टि है
id. Mongoid में यह_idहै , यदि आपके पास.id. पर निर्भर अन्य कोड है JSON ऑब्जेक्ट में, आप as_jsonको ओवरराइड कर सकते हैं। ए> JSON संरचना बनाने के लिए अपने मॉडल में कार्य करें जो आप चाहते हैं। -
MM में,
Model.fields(:id, :name), डेटाबेस से लौटाए गए फ़ील्ड को विधि में आपूर्ति किए गए फ़ील्ड तक सीमित करता है। Mongoid में यहModel.only(:name,:id). है -
कुछ प्रश्न बदलते हैं:
-
सरणी द्वारा वस्तुओं का चयन करना:MM:
Model.where(:attr.in => [ ] )औरModel.where(:attr => [ ] ). Mongoid केवल है:Model.where(:attr.in => [ ] ) -
एमएम का मैप ऑप्शन मिड के प्लक के बराबर है।
Model.map(&:name)--to--Model.pluck(:name) -
Mongoid शून्य के लिए खोज क्वेरी का समर्थन नहीं करता है। उदाहरण:
value = nil. Model.find(value)एक त्रुटि देगा:"Calling Document .find with nil is invalid". तो मोंगोइड में हमें यह करना चाहिए:Model.find(value || "")। -
MM में:
Model.find_or_initialize_by_name("BOB"). Mongoid मेंModel.find_or_initialize_by(name: "BOB")। -
MM का उपयोग उन दो विकल्पों में किया जा सकता है:
Model.where({:name => 'BOB'}).first, और साथ हीModel.first({:name => 'BOB'}). मोंगोइड के पास केवल पहला विकल्प है। -
MM में, कई ऑब्जेक्ट को अपडेट करने के लिए:
Model.set({conditions},attr_to_update). Mongoid में:Model.where(conditions).update_all(attr_to_update)।
-