ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Roger Bodamer @rogerb
Baseball
World Series
Giants lead 3-1 over Rangers
What is MongoDB?
quick introduction
design session
deploy mongodb
scaling
MongoDB adoption is very strong
90,000
Database
downloads
per month
Over 1,000 Production
Deployments
Platform and Language support
MongoDB is Implemented in C++ for best performance
Platforms 32/64 bit
? Windows
? Linux, Mac OS-X, FreeBSD, Solaris
Platform and Language support
MongoDB is Implemented in C++ for best performance
Platforms 32/64 bit
? Windows
? Linux, Mac OS-X, FreeBSD, Solaris
Language drivers for
? Ruby / Ruby-on-Rails
? Java / C# / JavaScript
? C / C++
? Erlang
? Python, Perl
? others...
.. and much more ! ..
non-?©\relational,	
 ?next-?©\generation	
 ?
operational	
 ?datastores	
 ?and	
 ?databases
NoSQL Really
Means:
RDBMS
(Oracle,	
 ?MySQL)
RDBMS
(Oracle,	
 ?MySQL)
New Gen.
OLAP
(vertica,	
 ?aster,	
 ?
greenplum)
RDBMS
(Oracle,	
 ?MySQL)
New Gen.
OLAP
(vertica,	
 ?aster,	
 ?
greenplum)
Non-relational
Operational
Stores
(¡°NoSQL¡±)
Philosophy:	
 ?maximize	
 ?features	
 ?-?©\	
 ?up	
 ?to	
 ?the	
 ?¡°knee¡±	
 ?in	
 ?the	
 ?curve,	
 ?then	
 ?stop
depth	
 ?of	
 ?functionality
scalability	
 ?&	
 ?performance
? memcached
? key/value
? RDBMS
Horizontally Scalable
Architectures
no	
 ?joins
no	
 ?complex	
 ?transactions+
New Data Models
no	
 ?joins
no	
 ?complex	
 ?transactions+
Improved ways to develop
New Data Models
-?©\>	
 ?
Terminology
RDBMS MongoDB
Table Collection
Row(s) JSON	
 ?Document
Index Index
Join Embedding	
 ?&	
 ?Linking
Partition Shard
Partition	
 ?Key Shard	
 ?Key
MongoDB Design Session
MongoDB Design Session
Blog Post Document
	
 ?p	
 ?=	
 ?{author:	
 ?¡°roger¡±,
	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?date:	
 ?new	
 ?Date(),
	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?text:	
 ?¡°Spirited	
 ?Away¡±,
	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?tags:	
 ?[¡°Tezuka¡±,	
 ?¡°Manga¡±]}
>db.posts.save(p)
Query Posts Collection
>db.posts.?nd()
{ _id : ObjectId("4c4ba5c0672c685e5e8aabf3"),
author : "roger",
date : "Sat Jul 24 2010 19:47:11 GMT-0700 (PDT)",
text : "Spirited Away",
tags : [ "Tezuka", "Manga" ] }
Notes:
- _id is unique, but can be anything you¡¯d like
Create index on any Field in Document
// 1 means ascending, -1 means descending
>db.posts.ensureIndex({author: 1})
>db.posts.?nd({author: 'roger'})
{ _id : ObjectId("4c4ba5c0672c685e5e8aabf3"),
author : "roger",
... }
Secondary Index
Query operators
Conditional operators:
$ne, $in, $nin, $mod, $all, $size, $exists, $type, ..
$lt, $lte, $gt, $gte, $ne, ...
// ?nd posts with any tags
>db.posts.?nd({tags: {$exists: true}})
Query operators
Conditional operators:
$ne, $in, $nin, $mod, $all, $size, $exists, $type, ..
$lt, $lte, $gt, $gte, $ne,
// ?nd posts with any tags
>db.posts.?nd({tags: {$exists: true}})
Regular expressions:
// posts where author starts with r
>db.posts.?nd({author: /^r*/i })
Query operators
Conditional operators:
$ne, $in, $nin, $mod, $all, $size, $exists, $type, ..
$lt, $lte, $gt, $gte, $ne,
// ?nd posts with any tags
>db.posts.?nd({tags: {$exists: true}})
Regular expressions:
// posts where author starts with k
>db.posts.?nd({author: /^k*/i })
Counting:
// posts written by roger
	
 ?	
 ?>db.posts.find({author:	
 ?¡°roger¡±}).count()
Extending the Schema
comment = {author: ¡°fred¡±,
date: new Date(),
text: ¡°Best Movie Ever¡±}
update = { ¡®$push¡¯: {comments: comment}}
	
 ?>db.posts.update({_id:	
 ?¡°...¡±	
 ?},	
 ?update)
Adding Comments to Blog
{ _id : ObjectId("4c4ba5c0672c685e5e8aabf3"),
author : "roger",
date : "Sat Jul 24 2010 19:47:11 GMT-0700 (PDT)",
text : "Spirited Away",
tags : [ "Tezuka", "Manga" ],
comments : [

 {

 
 author : "Fred",

 
 date : "Sat Jul 24 2010 20:51:03 GMT-0700 (PDT)",

 
 text : "Best Movie Ever"

 }
]}
// create index on nested documents:
>db.posts.ensureIndex({"comments.author": 1})
>db.posts.?nd({comments.author:¡±Fred¡±})
Secondary Index
Deploying MongoDB
Deploying MongoDB
Primary
Read	
 ?/	
 ?Write
Deploying MongoDB
Primary
Secondary
Read	
 ?/	
 ?Write
Replication
Setting Up MongoDB
Primary
Secondary
Read	
 ?/	
 ?Write
Secondary	
 ?for	
 ?Backup
Replication
Replication
Setting Up MongoDB
Primary
Secondary
Read	
 ?/	
 ?Write
Secondary	
 ?for	
 ?Backup
Read Replication
Replication
Setting Up MongoDB
Primary
Secondary
Read	
 ?/	
 ?Write
Secondary	
 ?for	
 ?Backup
Read Replication
Replication
Replicaset
Read Scalability : Replication
write
read
ReplicaSet	
 ?1
Primary
Secondary
Secondary
Write Scalability: Sharding
write
read
ReplicaSet	
 ?1
Primary
Secondary
Secondary
ReplicaSet	
 ?2
Primary
Secondary
Secondary
ReplicaSet	
 ?3
Primary
Secondary
Secondary
key	
 ?range	
 ?
0	
 ?..	
 ?30
key	
 ?range	
 ?
31	
 ?..	
 ?60
key	
 ?range	
 ?
61	
 ?..	
 ?100
Monitoring
? We like Munin ..
? ... but other frameworks
work as well
? Primary function:
? Measure stats over time
? Tells you what is going on with
your system
MongoDB makes building
applications easy
Designed a Blog Schema
Evolved the Schema
Deployed MongoDB
Scale MongoDB
MongoDB makes building
applications easy
Map / Reduce
Capped Collections
Tail-able Cursors
Geo Indexing
.. and much more ! ..
@mongodb
conferences,	
 ?appearances,	
 ?and	
 ?meetups
http://www.10gen.com/events
http://bit.ly/mongoG	
 ?
Facebook	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?|	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?Twitter	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?|	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?LinkedIn
http://linkd.in/joinmongo
download at mongodb.org
We¡¯re Hiring !
roger@10gen.com
Ad

Recommended

This is redis - feature and usecase
This is redis - feature and usecase
Kris Jeong
?
A simple introduction to redis
A simple introduction to redis
Zhichao Liang
?
Cis222 9
Cis222 9
Russ Ferriday
?
10gen MongoDB Video Presentation at WebGeek DevCup
10gen MongoDB Video Presentation at WebGeek DevCup
WebGeek Philippines
?
Oleg Natalushko. Drupal server anatomy. DrupalCamp Kyiv 2011
Oleg Natalushko. Drupal server anatomy. DrupalCamp Kyiv 2011
Vlad Savitsky
?
MongoDB: How it Works
MongoDB: How it Works
Mike Dirolf
?
Redis overview for Software Architecture Forum
Redis overview for Software Architecture Forum
Christopher Spring
?
Back to Basics Webinar 3 - Thinking in Documents
Back to Basics Webinar 3 - Thinking in Documents
Joe Drumgoole
?
Back to Basics Webinar 2: Your First MongoDB Application
Back to Basics Webinar 2: Your First MongoDB Application
MongoDB
?
Back to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQL
Joe Drumgoole
?
Automated Hadoop Cluster Construction on EC2
Automated Hadoop Cluster Construction on EC2
Mark Kerzner
?
Introduction to redis
Introduction to redis
Tanu Siwag
?
An Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL database
Ali MasudianPour
?
Mongodb
Mongodb
Scott Motte
?
Ops Jumpstart: Admin 101
Ops Jumpstart: Admin 101
MongoDB
?
Mongodb index ×x•øÐĵÃ
Mongodb index ×x•øÐĵÃ
cc liu
?
Elastic Search Training#1 (brief tutorial)-ESCC#1
Elastic Search Training#1 (brief tutorial)-ESCC#1
medcl
?
Can I write to a read only file ?
Can I write to a read only file ?
Dharmalingam Ganesan
?
Alluxio in MOMO
Alluxio in MOMO
Alluxio, Inc.
?
Introduction to Redis
Introduction to Redis
Arnab Mitra
?
Resource Management of Docker
Resource Management of Docker
SpeedyCloud
?
Powershell dcpp
Powershell dcpp
artisriva
?
Linux again
Linux again
YoungChoonTae
?
Amepad lt(tmpfs)
Amepad lt(tmpfs)
Satoshi Udagawa
?
MongoDB a document store that won't let you down.
MongoDB a document store that won't let you down.
Nurul Ferdous
?
Guava
Guava
fbenault
?
Containers > VMs
Containers > VMs
David Timothy Strauss
?
Your 1st Ceph cluster
Your 1st Ceph cluster
Mirantis
?
MongoDB.pdf
MongoDB.pdf
KuldeepKumar778733
?
Mongodb intro
Mongodb intro
christkv
?

More Related Content

What's hot (20)

Back to Basics Webinar 2: Your First MongoDB Application
Back to Basics Webinar 2: Your First MongoDB Application
MongoDB
?
Back to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQL
Joe Drumgoole
?
Automated Hadoop Cluster Construction on EC2
Automated Hadoop Cluster Construction on EC2
Mark Kerzner
?
Introduction to redis
Introduction to redis
Tanu Siwag
?
An Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL database
Ali MasudianPour
?
Mongodb
Mongodb
Scott Motte
?
Ops Jumpstart: Admin 101
Ops Jumpstart: Admin 101
MongoDB
?
Mongodb index ×x•øÐĵÃ
Mongodb index ×x•øÐĵÃ
cc liu
?
Elastic Search Training#1 (brief tutorial)-ESCC#1
Elastic Search Training#1 (brief tutorial)-ESCC#1
medcl
?
Can I write to a read only file ?
Can I write to a read only file ?
Dharmalingam Ganesan
?
Alluxio in MOMO
Alluxio in MOMO
Alluxio, Inc.
?
Introduction to Redis
Introduction to Redis
Arnab Mitra
?
Resource Management of Docker
Resource Management of Docker
SpeedyCloud
?
Powershell dcpp
Powershell dcpp
artisriva
?
Linux again
Linux again
YoungChoonTae
?
Amepad lt(tmpfs)
Amepad lt(tmpfs)
Satoshi Udagawa
?
MongoDB a document store that won't let you down.
MongoDB a document store that won't let you down.
Nurul Ferdous
?
Guava
Guava
fbenault
?
Containers > VMs
Containers > VMs
David Timothy Strauss
?
Your 1st Ceph cluster
Your 1st Ceph cluster
Mirantis
?
Back to Basics Webinar 2: Your First MongoDB Application
Back to Basics Webinar 2: Your First MongoDB Application
MongoDB
?
Back to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQL
Joe Drumgoole
?
Automated Hadoop Cluster Construction on EC2
Automated Hadoop Cluster Construction on EC2
Mark Kerzner
?
Introduction to redis
Introduction to redis
Tanu Siwag
?
An Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL database
Ali MasudianPour
?
Ops Jumpstart: Admin 101
Ops Jumpstart: Admin 101
MongoDB
?
Mongodb index ×x•øÐĵÃ
Mongodb index ×x•øÐĵÃ
cc liu
?
Elastic Search Training#1 (brief tutorial)-ESCC#1
Elastic Search Training#1 (brief tutorial)-ESCC#1
medcl
?
Introduction to Redis
Introduction to Redis
Arnab Mitra
?
Resource Management of Docker
Resource Management of Docker
SpeedyCloud
?
Powershell dcpp
Powershell dcpp
artisriva
?
MongoDB a document store that won't let you down.
MongoDB a document store that won't let you down.
Nurul Ferdous
?
Your 1st Ceph cluster
Your 1st Ceph cluster
Mirantis
?

Similar to Mongo db japan (20)

MongoDB.pdf
MongoDB.pdf
KuldeepKumar778733
?
Mongodb intro
Mongodb intro
christkv
?
MongoDB
MongoDB
Steven Francia
?
MongoDB at FrozenRails
MongoDB at FrozenRails
Mike Dirolf
?
Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDB
MongoDB
?
MongoDB for Time Series Data Part 3: Sharding
MongoDB for Time Series Data Part 3: Sharding
MongoDB
?
MongoDB at RuPy
MongoDB at RuPy
Mike Dirolf
?
Building your first app with MongoDB
Building your first app with MongoDB
Norberto Leite
?
MongoDB Pros and Cons
MongoDB Pros and Cons
johnrjenson
?
Introduction to MongoDB
Introduction to MongoDB
Alex Bilbie
?
Scaling with MongoDB
Scaling with MongoDB
Rick Copeland
?
MongoDB Best Practices in AWS
MongoDB Best Practices in AWS
Chris Harris
?
Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDB
MongoDB
?
OSDC 2012 | Building a first application on MongoDB by Ross Lawley
OSDC 2012 | Building a first application on MongoDB by Ross Lawley
NETWAYS
?
Introduction to MongoDB
Introduction to MongoDB
Mike Dirolf
?
How to use MongoDB with CakePHP
How to use MongoDB with CakePHP
ichikaway
?
MongoDB: Optimising for Performance, Scale & Analytics
MongoDB: Optimising for Performance, Scale & Analytics
Server Density
?
Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDB
MongoDB
?
No SQL : Which way to go? Presented at DDDMelbourne 2015
No SQL : Which way to go? Presented at DDDMelbourne 2015
Himanshu Desai
?
NoSQL, which way to go?
NoSQL, which way to go?
Ahmed Elharouny
?
Mongodb intro
Mongodb intro
christkv
?
MongoDB at FrozenRails
MongoDB at FrozenRails
Mike Dirolf
?
Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDB
MongoDB
?
MongoDB for Time Series Data Part 3: Sharding
MongoDB for Time Series Data Part 3: Sharding
MongoDB
?
Building your first app with MongoDB
Building your first app with MongoDB
Norberto Leite
?
MongoDB Pros and Cons
MongoDB Pros and Cons
johnrjenson
?
Introduction to MongoDB
Introduction to MongoDB
Alex Bilbie
?
MongoDB Best Practices in AWS
MongoDB Best Practices in AWS
Chris Harris
?
Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDB
MongoDB
?
OSDC 2012 | Building a first application on MongoDB by Ross Lawley
OSDC 2012 | Building a first application on MongoDB by Ross Lawley
NETWAYS
?
Introduction to MongoDB
Introduction to MongoDB
Mike Dirolf
?
How to use MongoDB with CakePHP
How to use MongoDB with CakePHP
ichikaway
?
MongoDB: Optimising for Performance, Scale & Analytics
MongoDB: Optimising for Performance, Scale & Analytics
Server Density
?
Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDB
MongoDB
?
No SQL : Which way to go? Presented at DDDMelbourne 2015
No SQL : Which way to go? Presented at DDDMelbourne 2015
Himanshu Desai
?
Ad

More from rogerbodamer (6)

Thoughts on consistency models
Thoughts on consistency models
rogerbodamer
?
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling
rogerbodamer
?
Thoughts on MongoDB Analytics
Thoughts on MongoDB Analytics
rogerbodamer
?
Mongo Web Apps: OSCON 2011
Mongo Web Apps: OSCON 2011
rogerbodamer
?
Deployment
Deployment
rogerbodamer
?
Schema Design with MongoDB
Schema Design with MongoDB
rogerbodamer
?
Thoughts on consistency models
Thoughts on consistency models
rogerbodamer
?
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling
rogerbodamer
?
Thoughts on MongoDB Analytics
Thoughts on MongoDB Analytics
rogerbodamer
?
Mongo Web Apps: OSCON 2011
Mongo Web Apps: OSCON 2011
rogerbodamer
?
Schema Design with MongoDB
Schema Design with MongoDB
rogerbodamer
?
Ad

Mongo db japan