खोज…


स्थापना

सबसे पहले, Mongoid को अपने Gemfile जोड़ें:

gem "mongoid", "~> 4.0.0"

और फिर bundle install चलाएं। या बस चलाएं:

$ gem install mongoid

स्थापना के बाद, विन्यास फाइल बनाने के लिए जनरेटर चलाएं:

$ rails g mongoid:config

जो फ़ाइल (myapp)/config/mongoid.yml

एक मॉडल बनाना

एक मॉडल बनाएं (इसे User कॉल करने दें)

$ rails g model User

जो फ़ाइल app/models/user.rb उत्पन्न करेगा:

class User
  include Mongoid::Document

end

यह आपको एक मॉडल (यद्यपि एक id फ़ील्ड के अलावा कुछ भी नहीं) की आवश्यकता है। ActiveRecord विपरीत, कोई माइग्रेशन फ़ाइल नहीं है। मॉडल के लिए सभी डेटाबेस जानकारी मॉडल फ़ाइल में निहित है।

जब आप इसे बनाते हैं तो टाइमस्टैम्प स्वचालित रूप से आपके मॉडल में शामिल नहीं होते हैं। अपने मॉडल में created_at और updated_at जोड़ने के लिए, जोड़ें

include Mongoid::Timestamps

आपके मॉडल के नीचे include Mongoid::Document जैसे शामिल हैं:

class User
  include Mongoid::Document
  include Mongoid::Timestamps

end

खेत

Mongoid प्रलेखन के अनुसार, 16 मान्य फ़ील्ड प्रकार हैं:

  • सरणी
  • BigDecimal
  • बूलियन
  • दिनांक
  • दिनांक और समय
  • फ्लोट
  • हैश
  • पूर्णांक
  • BSON :: ObjectId
  • BSON :: बाइनरी
  • रेंज
  • regexp
  • तार
  • प्रतीक
  • समय
  • TimeWithZone

एक फ़ील्ड जोड़ने के लिए (इसे name और इसे एक String कहें), इसे अपनी मॉडल फ़ाइल में जोड़ें:

field :name, type: String

डिफ़ॉल्ट मान सेट करने के लिए, बस default विकल्प में पास करें:

field :name, type: String, default: ""

क्लासिक एसोसिएशन

Mongoid क्लासिक ActiveRecord संघों की अनुमति देता है:

  • एक-से-एक: has_one / belongs_to
  • एक से कई: has_many / belongs_to
  • कई-कई: has_and_belongs_to_many

एक एसोसिएशन जोड़ने के लिए (उपयोगकर्ता has_many पदों कहते हैं), आप इसे अपने User मॉडल फ़ाइल में जोड़ सकते हैं:

has_many :posts

और यह आपकी Post मॉडल फ़ाइल के लिए:

belongs_to :user

यह आपके Post मॉडल में एक user_id फ़ील्ड जोड़ देगा, आपके Post क्लास में एक user विधि जोड़ देगा, और आपके User वर्ग में एक posts विधि जोड़ देगा।

एंबेडेड एसोसिएशन

Mongoid एंबेडेड एसोसिएशन की अनुमति देता है:

  • एक-से-एक: embeds_one / embedded_in
  • एक से कई: embeds_many / embedded_in

एक एसोसिएशन जोड़ने के लिए (उपयोगकर्ता को embeds_many करने के लिए कहते हैं), इसे अपनी User फ़ाइल में जोड़ें:

embeds_many :addresses

और यह आपके Address मॉडल फ़ाइल में है:

embedded_in :user

यह आपके User मॉडल में Address को एम्बेड करेगा, आपके User वर्ग में addresses विधि जोड़ देगा।

डेटाबेस कॉल

Mongoid ActiveRecord समान सिंटैक्स होने की कोशिश करता है जब वह कर सकता है। यह इन कॉल्स (और कई और) का समर्थन करता है

User.first #Gets first user from the database

User.count #Gets the count of all users from the database

User.find(params[:id]) #Returns the user with the id found in params[:id]

User.where(name: "Bob") #Returns a Mongoid::Criteria object that can be chained
                        #with other queries (like another 'where' or an 'any_in')
                        #Does NOT return any objects from database

User.where(name: "Bob").entries #Returns all objects with name "Bob" from database

User.where(:name.in => ['Bob', 'Alice']).entries #Returns all objects with name "Bob" or "Alice" from database

User.any_in(name: ["Bob", "Joe"]).first #Returns the first object with name "Bob" or "Joe"
User.where(:name => 'Bob').exists? # will return true if there is one or more users with name bob


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow