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

MongoDB London UG, April 2011 - MongoDB Introduction

MongoDB London UG, April 2011 - MongoDB Introduction

Russell Smith

April 20, 2012
Tweet

More Decks by Russell Smith

Other Decks in Technology

Transcript

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

    View Slide

  2. /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

    View Slide

  3. 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

    View Slide

  4. 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

    View Slide

  5. Basics
    • Common things you do in MySQL or another RDBMS;
    • Insert
    • Select (aka find)
    • Update
    • Delete (aka remove)
    • Index
    Friday, 20 April 12

    View Slide

  6. Create
    • Creating ‘tables’, or in MongoDB terms collections, is not usually
    necessary
    • Ditto for databases
    Friday, 20 April 12

    View Slide

  7. Insert
    • db.test.insert({hello: ‘world’});
    • This insert the document {hello: ‘world’} into the test collection
    Friday, 20 April 12

    View Slide

  8. 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

    View Slide

  9. Updates
    • Let’s update the document to say from Russell
    • db.test.update(, )
    • db.test.update({hello: ‘world’}, {hello: ‘from Russell’})
    Friday, 20 April 12

    View Slide

  10. Delete?
    • db.test.remove()
    • Lets remove the last document
    • db.test.remove({hello: ‘from Russell’})
    Friday, 20 April 12

    View Slide

  11. 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

    View Slide

  12. 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

    View Slide

  13. 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

    View Slide