Top Banner
MongoDB Rawin Viruchpintu Creative Technology Leader Spriiing Telecom Co.,Ltd. July 20, 2012
19

MongoDB

Nov 01, 2014

Download

Technology

Basic step to learn what is MongoDB
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MongoDB

MongoDB Rawin Viruchpintu

Creative Technology Leader Spriiing Telecom Co.,Ltd.

July 20, 2012

Page 2: MongoDB

Outline • MongoDB

• Installation & start

• Using Mongo

Page 3: MongoDB

• Document-oriented

• Dynamic queries

• Full dynamic index support

• Efficient binary large-object storage

• Built for speed

• Replication and Auto-failover

Page 4: MongoDB

Installation & start

• Download http://www.mongodb.org/downloads

• Unzip into a folder for example /some/path/mongodb

• Run $bin/mongod --dbpath=/some/path/mongodb

Page 5: MongoDB

Installation via Rails • $ gem install mongo

Successfully installed mongo-1.6.4 1 gem installed Installing ri documentation for mongo-1.6.4... Installing RDoc documentation for mongo-1.6.4...

Page 6: MongoDB

Database structure

• Separate DBs

• Organized into Collections Top-level key -> Document

• Collections

– Group things into logical classes

– Indexable by one or more keys

– Schema-free!

Page 7: MongoDB

Database structure • Document

– Always contains key_id

– Creating Relationships: subdocument, shared key, or DBRef

– Native storage and transfer: BSON

• BSON – is a binary encoded serialization of JSON-like

documents. http://bsonspec.org/

Page 8: MongoDB
Page 9: MongoDB

Using Mongo D:\mongodb\bin>mongo MongoDB shell version: 2.0.6

connecting to: test

> show dbs local (empty)

test (empty)

> use test switched to db test

> db.test.find()

> db.test.save({ name:'windy' , skills: 'blackberry, perl, php' })

> db.test.find() { "_id" : ObjectId("5008eb49839a10d95a068a01"), "name" : "windy", "skills" : "bl

ackberry, perl, php" }

Page 10: MongoDB

Using Mongo >use things switched to db things

>for ( var i=1; i<10; i++) db.things.save( {x: 'No.'+i, counter: i } ) >db.things.find() { "_id" : ObjectId("5008f81d839a10d95a068a02"), "x" : "No.1", "counter" : 1 } { "_id" : ObjectId("5008f81d839a10d95a068a03"), "x" : "No.2", "counter" : 2 } { "_id" : ObjectId("5008f81d839a10d95a068a04"), "x" : "No.3", "counter" : 3 } { "_id" : ObjectId("5008f81d839a10d95a068a05"), "x" : "No.4", "counter" : 4 } { "_id" : ObjectId("5008f81d839a10d95a068a06"), "x" : "No.5", "counter" : 5 } { "_id" : ObjectId("5008f81d839a10d95a068a07"), "x" : "No.6", "counter" : 6 } { "_id" : ObjectId("5008f81d839a10d95a068a08"), "x" : "No.7", "counter" : 7 } { "_id" : ObjectId("5008f81d839a10d95a068a09"), "x" : "No.8", "counter" : 8 } { "_id" : ObjectId("5008f81d839a10d95a068a0a"), "x" : "No.9", "counter" : 9 }

Page 11: MongoDB

Using Mongo > db.things.find({x: 'No.4'}) { "_id" : ObjectId("5008f81d839a10d95a068a05"), "x" : "No.4", "counter" : 4 }

> db.things.find({x: 'No.33'})

>

> db.things.find( { counter : { $gt : 5, $lte : 8} }) { "_id" : ObjectId("5008f81d839a10d95a068a07"), "x" : "No.6", "counter" : 6 }

{ "_id" : ObjectId("5008f81d839a10d95a068a08"), "x" : "No.7", "counter" : 7 }

{ "_id" : ObjectId("5008f81d839a10d95a068a09"), "x" : "No.8", "counter" : 8 }

Page 12: MongoDB

Using Mongo > show dbs local (empty)

things 0.078125GB

> use foo switched to db foo

> db.foo.save( { name: 'windy', age: 18 } )

> db.foo.find() { "_id" : ObjectId("5008fa33839a10d95a068a0b"), "name" : "windy", "age" : 18 }

> db.foo.update( {name: 'windy' }, { $set : { age : 21 } } )

> db.foo.find() { "_id" : ObjectId("5008fa33839a10d95a068a0b"), "name" : "windy", "age" : 21 }

Page 13: MongoDB

Using Mongo

> db.foo.findOne( { name: 'windy'} )

{

"_id" : ObjectId("5008fa33839a10d95a068a0b"),

"name" : "windy",

"age" : 21

}

Page 14: MongoDB

Using Mongo > use teams

switched to db teams

> db.teams.save({ team: 'A' , member : [ 'Kai'] })

> db.teams.find()

{

"_id" : ObjectId("5008fc13839a10d95a068a0c"),

"team" : "A",

"member" : [ "Kai” ]

}

> db.teams.update({ team: 'A' },{ $push : { member : 'Windy' } })

> db.teams.findOne()

{

"_id" : ObjectId("5008fc13839a10d95a068a0c"),

"member" : [ "Kai",

"Windy" ],

“team" : "A"

}

Page 15: MongoDB

Using Mongo

> use simple

switched to db simple

> db.members.save( { name:"Windy", skill: ["java", "php"] } )

> db.teams.save({ team: 'A' })

Members Teams

Windy Project A

Page 16: MongoDB

project_a =

Using Mongo > windy = db.members.findOne( {name: "Windy"} )

{

"_id" : ObjectId("50090510839a10d95a068a0f"),

"name" : "Windy",

"skill" : [

"java",

"php"

]

}

> project_a = db.teams.findOne( { team : "A" } )

{ "_id" : ObjectId("50090533839a10d95a068a10"), "team" : "A" }

Project A

Windy windy =

Page 17: MongoDB

Using Mongo > project_a.members = [] [ ]

> project_a.members.push (new DBRef ('members', windy._id) ) 1

> db.teams.save(project_a) > project_a { "_id" : ObjectId("50090533839a10d95a068a10"), "team" : "A",

"members" : [ { "$ref" : "members", "$id" : ObjectId("50090510839a10d95a068a0f") } ] }

Project A

windy = DBRef( )

Teams

Page 18: MongoDB

Using Mongo > project_a.members [ { "$ref" : "members", "$id" : ObjectId("50090510839a10d95a068a0f") } ]

> project_a.members[0] { "$ref" : "members", "$id" : ObjectId("50090510839a10d95a068a0f") }

> project_a.members[0].fetch() { "_id" : ObjectId("50090510839a10d95a068a0f"), "name" : "Windy", "skill" : [ "java", "php" ] }

Page 19: MongoDB

THANK YOU