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

MongoDB London UG, April 2011 - MongoDB Introdu...

MongoDB London UG, April 2011 - MongoDB Introduction

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 •

    Specialising in helping companies going through rapid growth • Help with code, architecture, infrastructure, devops, sysops, capacity planning, etc • <3 gearman, mongodb, neo4j, mysql, kohana, riaksearch, php, debian Friday, 20 April 12
  2. What is MongoDB • A scalable, high-performance, open source, document-oriented

    database. • Stores JSON like documents • Indexible on any attributes (like MySQL) Friday, 20 April 12
  3. Getting started... • Try out the interactive shell at www.mongodb.org

    (then click try!) • Download and install - http://www.mongodb.org/downloads Friday, 20 April 12
  4. Basics • Common things you do in MySQL or another

    RDBMS; • Insert • Select (aka find) • Update • Delete (aka remove) • Index Friday, 20 April 12
  5. Create • Creating ‘tables’, or in MongoDB terms collections, is

    not usually necessary • Ditto for databases Friday, 20 April 12
  6. Insert • db.test.insert({hello: ‘world’}); • This insert the document {hello:

    ‘world’} into the test collection Friday, 20 April 12
  7. Let’s check it • In MongoDB we find documents rather

    than SELECTing them... • db.test.find() • this is the equivalent of SELECT * FROM test; • it will return the document we previously inserted Friday, 20 April 12
  8. Updates • Let’s update the document to say from Russell

    • db.test.update(<documents which match>, <set to x>) • db.test.update({hello: ‘world’}, {hello: ‘from Russell’}) Friday, 20 April 12
  9. Delete? • db.test.remove(<where documents match>) • Lets remove the last

    document • db.test.remove({hello: ‘from Russell’}) Friday, 20 April 12
  10. Drop • If you no longer want an entire collection,

    you can drop it which removes all the data and indexes; • db.test.drop() Friday, 20 April 12
  11. Indexes • For performance it’s usually a good idea to

    index your collections. • How and which columns depends on what queries you are doing - you can get help with this by using ‘explain’ much like in MySQL. • db.test.ensureIndex({hello:1}) Friday, 20 April 12
  12. Further reading • I’ve only brushed on the details, but

    this should be enough to get you interested / started with MongoDB. Some of the missing stuff; • 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