Seedhack 2011 - Introducing MongoDB

Seedhack 2011 - Introducing MongoDB

Ab5cdb1357fae38ad51cc03947b377a5?s=128

Russell Smith

April 20, 2012
Tweet

Transcript

  1. An introduction to MongoDB Russell Smith Friday, 20 April 12

  2. /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
  3. What is MongoDB • A scalable, high-performance, open source, document-oriented

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

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

    MTV Networks • O2 • Telefonica Friday, 20 April 12
  6. Basics • insert • find • update • remove •

    ensureIndex Friday, 20 April 12
  7. Insert • db.test.insert({hello: ‘world’}); Friday, 20 April 12

  8. 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
  9. 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
  10. 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
  11. 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
  12. More advanced • sort, count, limit, special operators • Capped

    collections • Geospatial indexing • MapReduce • Replica sets • Sharding Friday, 20 April 12
  13. Getting started... • Download & install - http://www.mongodb.org/downloads • Online

    shell - http://www.mongodb.org/ Friday, 20 April 12
  14. 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