MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara mengkonfigurasi MongoMapper dan ActiveRecord di Proyek Ruby Rails yang sama

Sertakan permata mongo_mapper Anda di dalam Gemfile Anda. Kemudian dalam model yang perlahan ingin Anda mulai bermigrasi ke MongoMapper, cukup sertakan ini dalam model Anda:

include MongoMapper::Document

berikut adalah contoh model penerbit Mongo

class Publisher
  include MongoMapper::Document

  key :_id, String
  key :mtd_uniques, Integer
  key :mtd_demo_uniques, Integer
  key :archive, Array
  key :ignore, Boolean
end

Model pengguna saya (postgres):

class User < ActiveRecord::Base
  validates_presence_of :first_name, :last_name, :email, :type
  acts_as_authentic

  def self.inherited(child)
    child.instance_eval do
      def model_name
        User.model_name
      end
    end
    super
  end
end

Hal yang menyenangkan tentang ini adalah bahwa semua model Anda yang lain masih menggunakan ActiveRecord sehingga Anda dapat menggunakan 2 basis data berbeda hingga semuanya dimigrasikan ke Mongo. Ini adalah contoh dari apa yang saya gunakan. Agregasi data besar menggunakan MongoMapper, dan model Pengguna menggunakan postgres (aplikasi yang dihosting di Heroku)

Untuk pengaturan saya, saya membuang hal-hal konfigurasi di config.yml saya

development:
  adapter: MongoDB
  host: localhost
  database: my-dev-db

test:
  adapter: MongoDB
  host: localhost
  database: my-dev-db

staging:
  adapter: MongoDB
  host: remote-host (for me amazon ec2)
  database: my-staging-db

production:
  adapter: MongoDB
  host: remote-host (for me amazon ec2)
  database: my-production-db

dan membuat penginisialisasi yang membedakan antara 2 DB:

/initializers/database.rb

# load YAML and connect
database_yaml = YAML::load(File.read("#{Rails.root}/config/config.yml"))
puts "Initializing mongodb"
if database_yaml[Rails.env] && database_yaml[Rails.env]['adapter'] == 'MongoDB'
  mongo_database = database_yaml[Rails.env]
  MongoMapper.connection = Mongo::Connection.new(mongo_database['host'], 27017, :pool_size => 5, :timeout => 5)
  MongoMapper.database =  mongo_database['database']
end


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Memanggil Fungsi db.system.js di $where

  2. Dapatkan kesalahan saat saya menginstal MongoDB di RedHat

  3. Buka:Buat antarmuka io.Writer untuk masuk ke database mongodb

  4. Masuk dengan kredensial root pada wadah Mongodb yang dibuat menggunakan penulisan Docker

  5. sailsjs menggunakan mongodb tanpa ORM