docs/reference/additional-resources.txt
.. _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.