I recently done two tech talks about using MongoDB for Rails projects, one at Coimbra.rb, and another one at the LinkedCare offices. Here are the slides:

Developing an important application under a new technology is always a bet. That’s what we did when we choose to use MongoDB as our only database system for Bundlr. It helped that 10gen, MongoDB’s creators, were funded by Union Square Ventures. It also helped that there were already a few somewhat solid ORMs for Ruby on Rails.

Recently we had two great news: first MongoLab and then MongoHQ raised funding. I had the chance to meet the MongoLab’s folks in San Francisco and I got excited by their future plans. For example, I still haven’t found the ideal front-end for managing MongoDB databases, but I got a demo of the new MongoLab GUI and it’s shaping up pretty well.

The MongoDB ecosystem is growing as more and more companies are using it. Let’s see what the future will bring us…

I’ve been researching on platforms to host MongoDB databases. The next table compares the three services I found so far:

PlatformMongoHQMongoMachineMongoLab
Free planYes - 16MBNoYes - 240MB
First paid plan$5/month - 256MB of space$25/month base + $2.50 per GB storage$10/month - 500MB of space
Dedicated planAlphaYesAlpha
ReplicationMaster/slave in the large plan (49$/month)Master/slaveMaster/slave in all paid plans
BackupsYes, download by requestYes, download by requestYes, download by request
Admin GUIYesYesYes
AnalyticsNoYesNo
Servers locationAmazon EC2 (North American)Amazon EC2Rackspace and Amazon EC2 (US - N. Virginia)

This information is bound to suffer changes, since some of these services are still in beta. Even MongoDB is changing as the 10gen team is releasing new features. Let’s see also if other players also enter this market. I’m really looking forward to not having to administer a database ever again.

Update: The folks from MongoLab told me they’re also providing backup’s download by request, and they’re updating their FAQ to make it more clear. Update 2: Justin Smestad from Mongo Machine notified me in the comments that they no longer charges for requests in multi-tenant plans.

I decided to give MongoDB a try on a brand new rails project. It was also a change to get a bit familiar with the upcoming Rails 3 (there’s a release candidate now \o/).

I found two MongoDB adapters for rails: MongoMapper and Mongoid. Here’s an article with a comparison (thanks Tomé Duarte). After trying out the two on a really simple use case, I preferred working with Mongoid for 3 reasons:

I also used MongoHQ to try out their free plan for cloud hosting service. It’s very easy to use, but I’m still waiting for a good MongoDB front-end for inspecting my databases.

After some research on NoSQL databases, for a future rails project, the projects that caught my attention were:

I’ve spent some more time MongoDB. Their list of prodution deployments is impressive. John Nunemaker developed an adapter for ruby, the MongoMapper, which already supports some neat features like validations and callbacks, much on the ActiveRecord style. See this article and the presentation below for more info:

Still have to spend some time experimenting with it, but it seems promising. 

Has anyone tried NoSQL with rails, on a recent project? Thoughts to share?