Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


Welcome to MongoRecord

MongoRecord is an ActiveRecord-like framework for the 10gen Mongo database.

This library is for use outside of Ruby on Rails. If you want to use Mongo with Ruby on Rails, please see the 'activerecord-mongo-adapter' project at

This document assumes you have read the Mongo documentation.

A quick code sample:

require 'rubygems'
require 'mongo'
require 'mongo_record'

class Track < MongoRecord::Base
  collection_name :tracks
  fields :artist, :album, :song, :track
  def to_s
    "artist: #{artist}, album: #{album}, song: #@song, track: #{@track ? @track.to_i : nil}"

MongoRecord::Base.connection ='mongorecord-test')

t = => 'Level 42', :album => 'Standing In The Light',
              :song => 'Micro-Kid', :track => 1)
puts "There are #{Track.count()} tracks."
t = Track.find(:first, :conditions => {:song => 'Micro-Kid'})
Track.find(:all, :sort => 'song').each { |t| puts t.to_s }


$ gem sources -a
$ sudo gem install mongodb-mongo_record

MongoRecord depends on the Mongo Ruby Driver, version 0.5.4 or higher. Installing the MongoRecord gem will also install the Mongo Ruby Driver if you don't have it already.

The source code is available at You can either clone the git repository or download a tarball or zip file. Once you have the source, you can use it from wherever you downloaded it or you can install it as a gem from the source by typing

$ rake gem:install

Note: when you install the gem this way it is called “mongo_record”, not “mongodb-mongo_record”. In either case, you “require 'mongo_record'” in your source code.

Getting Started

See the examples, read the MongoRecord::Base and MongoRecord::Cursor documentation, and look at tests/test_mongo.rb.


You can use MongoRecord::Base or talk to the database (stored in the $db object) directly.

See MongoRecord::Base and MongoRecord::Cursor.


See MongoRecord::LogDevice. When running outside of the cloud (for example, during development), all log messages are echoed to $stderr which is normally the console.


Jim Mulholland, jim at squeejee dot com

  • Ability to save custom attributes not declared in the model

  • Save and retrieve custom “_id” fields

  • Find_each functionality

  • Find_last based on the created_at field

  • Assigning created_at and updated_at fields even if they are not declared

  • Alias methods for “first”, “last” and “all”

To Do

  • DBRefs

Something went wrong with that request. Please try again.