Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Seedhack 2011 - Introducing MongoDB

Seedhack 2011 - Introducing MongoDB

Russell Smith

April 20, 2012
Tweet

More Decks by Russell Smith

Other Decks in Technology

Transcript

  1. /usr/bin/whoami • Russell Smith • Consultant for UKD1 Limited, •

    External consultant for 10gen • Help with code, architecture, infrastructure, devops, sysops, capacity planning, etc • <3 MongoDB, MySQL, Redis, Gearman, Neo4j, Kohana, Riak, PHP, Debian, AWS, etc Friday, 20 April 12
  2. What is MongoDB • A scalable, high-performance, open source, document-oriented

    database. • Stores JSON like documents • Commercially backed by 10gen Friday, 20 April 12
  3. Why choose it? • Schema-less • Simple • Reliable •

    Scalable • Drivers Friday, 20 April 12
  4. Who uses it? • Foursquare • Disney • Craigslist •

    MTV Networks • O2 • Telefonica Friday, 20 April 12
  5. Find • db.test.find() • Equivalent of SELECT * FROM test;

    > db.test.insert({hello: ‘world’}); > db.test.find(); { "_id" : ObjectId("4e7c9f464bdd7534bc498ff7"), "hello" : "world" } Friday, 20 April 12
  6. Updating • db.test.update(<condition>, <operation>) > db.test.find(); { "_id" : ObjectId("4e7c9f464bdd7534bc498ff7"),

    "hello" : "world" } > db.test.update({hello:‘world’}, {hello: ‘seedhack’}); > db.test.find(); { "_id" : ObjectId("4e7c9f464bdd7534bc498ff7"), "hello" : "seedhack" } Friday, 20 April 12
  7. Removing • db.test.remove(<condition>) > db.test.find(); { "_id" : ObjectId("4e7c9f464bdd7534bc498ff7"), "hello"

    : "seedhack" } > db.test.remove({hello: ‘seedhack’}); > db.test.count() 0 > Friday, 20 April 12
  8. Indexes • It’s usually a good idea to index your

    collections • How and which columns depends on what you are doing • explain > db.test.ensureIndex({hello:1}) Friday, 20 April 12
  9. More advanced • sort, count, limit, special operators • Capped

    collections • Geospatial indexing • MapReduce • Replica sets • Sharding Friday, 20 April 12
  10. Questions / Further • Come and ask me questions •

    Updates can also push, set, increment, decrement, etc http://bit.ly/gEfKOr • Indexes can be across multiple keys, 2D (geo) and ASC / DESC http://bit.ly/hpK68Q • SQL -> Mongo chart http://bit.ly/ig1Yfj Friday, 20 April 12