MongoDB

400 views
325 views

Published on

Basic step to learn what is MongoDB

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
400
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

MongoDB

  1. 1. MongoDB Rawin Viruchpintu Creative Technology Leader Spriiing Telecom Co.,Ltd. July 20, 2012
  2. 2. Outline • MongoDB • Installation & start • Using Mongo
  3. 3. • Document-oriented • Dynamic queries • Full dynamic index support • Efficient binary large-object storage • Built for speed • Replication and Auto-failover
  4. 4. Installation & start • Download http://www.mongodb.org/downloads • Unzip into a folder for example /some/path/mongodb • Run $bin/mongod --dbpath=/some/path/mongodb
  5. 5. 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...
  6. 6. 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!
  7. 7. 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/
  8. 8. Using Mongo D:mongodbbin>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" }
  9. 9. 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 }
  10. 10. 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 }
  11. 11. 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 }
  12. 12. Using Mongo > db.foo.findOne( { name: 'windy'} ) { "_id" : ObjectId("5008fa33839a10d95a068a0b"), "name" : "windy", "age" : 21 }
  13. 13. 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" }
  14. 14. 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
  15. 15. 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 Windywindy =
  16. 16. 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
  17. 17. 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" ] }
  18. 18. THANK YOU

×