उनमें से दोनों रूबी के लिए महान मोंगोडीबी पुस्तकालय हैं। लेकिन अगर आप स्विच करना चाहते हैं, तो यहां कुछ नोट दिए गए हैं:
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)
।
-