Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

/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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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