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
3. What is MongoDB
⢠A scalable, high-performance, open source, document-oriented
database.
⢠Stores JSON like documents
⢠Indexible on any attributes (like MySQL)
4. Getting started...
⢠Try out the interactive shell at www.mongodb.org (then click try!)
⢠Download and install - http://www.mongodb.org/downloads
5. Basics
⢠Common things you do in MySQL or another RDBMS;
⢠Insert
⢠Select (aka ďŹnd)
⢠Update
⢠Delete (aka remove)
⢠Index
6. Create
⢠Creating âtablesâ, or in MongoDB terms collections, is not usually
necessary
⢠Ditto for databases
7. Insert
⢠db.test.insert({hello: âworldâ});
⢠This insert the document {hello: âworldâ} into the test collection
8. Letâs check it
⢠In MongoDB we ďŹnd documents rather than SELECTing them...
⢠db.test.ďŹnd()
⢠this is the equivalent of SELECT * FROM test;
⢠it will return the document we previously inserted
9. 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â})
10. Delete?
⢠db.test.remove(<where documents match>)
⢠Lets remove the last document
⢠db.test.remove({hello: âfrom Russellâ})
11. Drop
⢠If you no longer want an entire collection, you can drop it which
removes all the data and indexes;
⢠db.test.drop()
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})
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