Zero to Mongo in 60 Hours

Notes from the Zero to Mongo in 60 Hours session of MongoSF.
  • MyPunchbowl.com uses Mongo for analytics and data tracking.
  • "MongoDB" gives me the warm fuzzies that Rails did.
  • http://railstips.org/blog/archives/2009/12/18/why-i-think-mongo-is-to-databases-what-rails-was-to-frameworks/
  • Very good support: had founders respond in 60 seconds at 11:30 at night.
  • mongo-ruby-driver - for playing with Mongo on Ruby
  • mongo shell - runs javascript
  • mongo-java-driver - is way faster than mongo-ruby-driver
  • mongo_mapper - is becoming the standard ruby ORM mapper
  • "Documents" look like JSON objects, you don't need to define a schema
  • No transactions, has atomic operations instead ("upsert")
  • Indexes in Mongo rock!
  • Can create composite indexes
  • Can add deep, embeded indexes on inner objects
  • Flexibility and performance in querying and aggregating
  • '$inc' => mongodb increment builtin
  • config/environments/test.rb -> $mongo_db = Mongo::Connection.new.db 'mongo-sf-db'
  • No transactions, so it needs to clean-up after itself
  • No database migrations, use them to add indexes (but Mongo Mapper can do that for you)
  • mongoexport to dump database (replication seems iffy)
  • Updating the db requires downtime
  • Mongo has an ordered hash (ruby)
  • Can do range based queries
  • mogosphinx - mongo's adhoc full text search is ok, but lacks infix