mongodb/mongo-ruby-driver

View on GitHub
docs/reference/additional-resources.txt

Summary

Maintainability
Test Coverage
.. _ruby-external-resources:

********************
Additional Resources
********************

.. default-domain:: mongodb

.. contents:: On this page
   :local:
   :backlinks: none
   :depth: 1
   :class: twocols

There are a number of good resources appearing all over the web for
learning about MongoDB and Ruby. A useful selection is listed below. If
you know of others, do let us know.

Screencasts
===========

- `Introduction to MongoDB - Part I
  <http://teachmetocode.com/screencasts/introduction-to-mongodb-part-i>`_

  An introduction to MongoDB via the MongoDB shell.

- `Introduction to MongoDB - Part II
  <http://teachmetocode.com/screencasts/introduction-to-mongodb-part-ii>`_

  In this screencast, Joon You teaches how to use the Ruby driver to
  build a simple Sinatra app.

- `Introduction to MongoDB - Part III
  <http://teachmetocode.com/screencasts/introduction-to-mongodb-part-iii-mongomapper-rails>`_

  For the final screencast in the series, Joon You introduces
  MongoMapper and Rails.

- `RailsCasts: MongoDB & MongoMapper
  <http://railscasts.com/episodes/194-mongodb-and-mongomapper>`_

  Ryan Bates' RailsCast introducing MongoDB and MongoMapper.

- `RailsCasts: Mongoid <http://railscasts.com/episodes/238-mongoid>`_

  Ryan Bates' RailsCast introducing Mongoid.

Presentations
=============

- `Introduction to MongoDB (Video) <http://pivotallabs.com/talks/85>`_

  Mike Dirolf's introduction to MongoDB at Pivotal Labs, SF.

- `MongoDB: A Ruby Document Store that doesn't rhyme with 'Ouch'
  (Slides)
  <http://www.slideshare.net/pengwynn/mongodb-ruby-document-store-that-doesnt-rhyme-with-ouch>`_

  Wynn Netherland's introduction to MongoDB with some comparisons to
  CouchDB.

- `MongoDB (is) for Rubyists (Slides)
  <http://www.slideshare.net/kbanker/mongodb-is-for-rubyists-boston-ruby>`_

  Kyle Banker's presentation on why MongoDB is for Rubyists (and all
  human-oriented programmers).

Articles
========

- `Why I Think Mongo is to Databases What Rails was to Frameworks
  <http://railstips.org/blog/archives/2009/12/18/why-i-think-mongo-is-to-databases-what-rails-was-to-frameworks/>`_

- `What if a key-value store mated with a relational database system?
  <http://railstips.org/2009/6/3/what-if-a-key-value-store-mated-with-a-relational-database-system>`_

- `Mongo Tips <http://mongotips.com>`_

  John Nunemaker's articles on MongoDB and his Mongo Tips blog.

- A series of articles on aggregation with MongoDB and Ruby:

  1. `Part I: Introduction of Aggregation in MongoDB
     <http://kylebanker.com/blog/2009/11/mongodb-count-group/>`_

  #. `Part II: MongoDB Grouping Elaborated
     <http://kylebanker.com/blog/2009/11/mongodb-advanced-grouping/>`_

  #. `Part III: Introduction to Map-Reduce in MongoDB
     <http://kylebanker.com/blog/2009/11/mongodb-advanced-grouping/>`_

- `Does the MongoDB Driver Support Feature X?
  <http://kylebanker.com/blog/2010/03/28/does-the-driver-support-feature-x/>`_

  An explanation of how the MongoDB drivers usually automatically
  support new database features.

Projects
========

- `Capistrano Mongo Sync <https://www.openlistings.com/capistrano-mongo-sync-ruby-gem>`_

  Sync your local development db with your remote production db using capistrano.

- `Simple Pub/Sub <https://gist.github.com/669309>`_

  A very simple pub/sub system.

- `Mongo Queue <http://github.com/Skiz/mongo_queue>`_

  An extensible thread safe job/message queueing system that uses
  MongoDB as the persistent storage engine.

- `Resque-mongo <http://github.com/ctrochalakis/resque-mongo>`_

  A port of the Github's Resque to MongoDB.

- `Mongo Admin <http://github.com/ahe/mongo_admin>`_

  A Rails plugin for browsing and managing MongoDB data. See the `live
  demo <http://mongo_admin.2dconcept.com>`_.

- `Sinatra Resource <http://github.com/djsun/sinatra_resource>`_

  Resource Oriented Architecture (REST) for Sinatra and MongoMapper.

- `NewsMonger <http://github.com/banker/newsmonger>`_

  A simple social news application demonstrating MongoMapper and Rails.

- `Data Catalog API <http://github.com/sunlightlabs/datacatalog-api>`_

  From `Sunlight Labs <http://www.sunlightlabs.com/>`_, a non-trivial
  application using MongoMapper and Sinatra.

- `Watchtower <http://github.com/kneath/watchtower/>`_

  An example application using Mustache, MongoDB, and Sinatra.

- `Shapado <http://github.com/patcito/Shapado>`_

  A question and answer site similar to Stack Overflow. Live version at
  `shapado.com <http://shapado.com>`_.

.. Does not seem to exist
.. - `Shorty <http://github.com/dancroak/shorty/>`_
.. A URL-shortener written with Sinatra and the MongoDB Ruby driver.

Libraries
=========

- `ActiveExpando <http://github.com/hayesdavis/active-expando>`_

  An extension to ActiveRecord to allow the storage of arbitrary
  attributes in MongoDB.

- `ActsAsTree (MongoMapper)
  <http://github.com/ramdiv/mongo_mapper_acts_as_tree>`_

  ActsAsTree implementation for MongoMapper.

- `Machinist adapter (MongoMapper)
  <http://github.com/yeastymobs/machinist_mongomapper/tree/master>`_

  Machinist adapter using MongoMapper.

- `Mongo-Delegate <http://github.com/mharris717/mongo_delegate>`_

  A delegation library for experimenting with production data without
  altering it. A quite useful pattern.

- `Remarkable Matchers (MongoMapper)
  <http://github.com/nmerouze/machinist_mongo>`_

  Testing / Matchers library using MongoMapper.

- `OpenIdAuthentication, supporting MongoDB as the datastore
  <http://github.com/collectiveidea/open_id_authentication>`_

  Brandon Keepers' fork of OpenIdAuthentication supporting MongoDB.

- `MongoTree (MongoRecord)
  <http://github.com/mully/mongo_tree/tree/master>`_

  MongoTree adds parent / child relationships to MongoRecord.

- `Merb_MongoMapper
  <http://github.com/shingara/merb_mongomapper/tree/master>`_

  A plugin for the Merb framework for supporting MongoMapper models.

- `Mongolytics (MongoMapper)
  <http://github.com/tpitale/mongolytics/tree/master>`_

  A web analytics tool.

- `Rack-GridFS <http://github.com/skinandbones/rack-gridfs/>`_

  A Rack middleware component that creates HTTP endpoints for files
  stored in GridFS.