Popularity
1.2
Growing
Activity
0.9
Declining
40
2
7

Code Quality Rank: L5
Monthly Downloads: 476
Programming language: Ruby
License: MIT License
Tags: ORM/ODM     Projects    
Latest version: v0.5.7

MongoModel alternatives and similar gems

Based on the "ORM/ODM" category

Do you think we are missing an alternative of MongoModel or a related project?

Add another 'ORM/ODM' Gem

README

MongoModel

MongoModel is a Ruby ORM for interfacing with MongoDB databases.

Build Status

Installation

MongoModel is distributed as a gem. Install with:

gem install mongomodel

For performance, you should probably also install the BSON C extensions:

gem install bson_ext

Using with Rails

Add MongoModel to your Gemfile (and run bundle install):

gem 'mongomodel'

Create the configuration file config/mongomodel.yml:

rails generate mongo_model:config DATABASENAME

Generating a model/document:

rails generate model Article title:string body:string published_at:time approved:boolean 

Generating an embedded document:

rails generate model Chapter title:string body:string -E

Sample Model

class Article < MongoModel::Document
  property :title, String, :default => 'Untitled'
  property :body, String
  property :published_at, Time, :protected => true
  property :approved, Boolean, :default => false, :protected => true

  timestamps!

  validates_presence_of :title, :body

  belongs_to :author, :class => User

  scope :published, where(:published_at.ne => nil)
end

Configuration

MongoModel can be configured similarly to ActiveRecord by creating/editing config/mongomodel.yml. The most basic configuration might look like:

development:
  database: mymongodbname
  host: localhost
  port: 27017

The config file also supports specifying the username, password, pool_size, password and replicas. Running rails generate mongo_model:config DATABASENAME will generate a basic config file for you.

Using Replica Sets

When working with replica sets, replace the host/port configuration with an array of replicas (host:port):

production:
  database: database_name
  replicas:
    - some.host.com:27017
    - another.host.com:27017
  username: username
  password: password