.. _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.