Your SlideShare is downloading. ×
  • Like
  • Save
MongoDB - Javascript for your Data
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

MongoDB - Javascript for your Data

  • 986 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
986
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
7
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. javascript for your datajavascript for your data
  • 2. MongoDB Bridge the gap between key/val stores and traditional RDBMS
  • 3. MongoDB Bridge the gap between key/val stores and traditional RDBMS
  • 4. MongoDB the gap ● table
  • 5. MongoDB the gap ● table → collection
  • 6. MongoDB collection
  • 7. MongoDB collection ● BSON document
  • 8. MongoDB collection ● BSON document ● a set of fields
  • 9. MongoDB collection ● BSON document ● a set of fields – key-value pair
  • 10. MongoDB collection ● BSON document ● a set of fields – key-value pair ● key: a name (string)
  • 11. MongoDB collection ● BSON document ● a set of fields – key-value pair ● key: a name (string) ● val: any basic type – string, int, float, date, binary, array, document, ...
  • 12. MongoDB collection ● of BSON documents ● queryable
  • 13. MongoDB the gap ● table → collection ● SQL
  • 14. MongoDB the gap ● table → collection ● SQL → query objects
  • 15. MongoDB Query object
  • 16. MongoDB Query object ● JSON-like query representation
  • 17. MongoDB Query object ● JSON-like query representation ● db.users.find({ 'lastname': 'Heckmann' });
  • 18. MongoDB Query object { 'lastname': 'Heckmann' }
  • 19. MongoDB Query object { 'lastname': 'Heckmann' } could even be an array
  • 20. MongoDB Query object { 'lastname': 'Heckmann' , 'body.odor': 'nasty' , 'age': { $gt: 32 } , ... }
  • 21. MongoDB Query object { 'lastname': 'Heckmann' , 'body.odor': 'nasty' , 'age': { $gt: 32 } , ... }
  • 22. MongoDB Query object { 'lastname': 'Heckmann' , 'body.odor': 'nasty' , 'age': { $gt: 32 } , ... }
  • 23. MongoDB Query object { 'lastname': 'Heckmann' , 'body.odor': 'nasty' , 'age': { $gt: 32, $lt: 65 } , ... }
  • 24. MongoDB Query object $gt $lt $ne $in $nin $all $not $size $exists … more
  • 25. MongoDB Query object RegExp too!
  • 26. MongoDB Query object RegExp too db.users.find({ 'lastname': /eckmann$/i });
  • 27. MongoDB Query object Subsets db.users.find({ 'lastname': /eckmann$/i }, { 'age': true });
  • 28. MongoDB Query object db.users .find({ 'lastname': /eckmann$/i }) .sort({ 'lastname': -1 }) .limit(10) .skip(10*(pageNumber - 1)) ;
  • 29. MongoDB Query object db.users .find({ 'lastname': /eckmann$/i }) .sort({ 'lastname': -1 }) ← descending .limit(10) .skip(10*(pageNumber - 1)) ;
  • 30. MongoDB Query object db.users .find({ 'lastname': /eckmann$/i }) .count() ;
  • 31. MongoDB ● no JOINs
  • 32. MongoDB ● no JOINs ● less normalization
  • 33. MongoDB ● no JOINs ● less normalization ● embedded documents
  • 34. MongoDB embedded documents
  • 35. MongoDB embedded documents { name: 'aaron' , scores: [ { total: 93, class: ObjectID } , { total: 46, class: ObjectID } , { total: 20, class: ObjectID } ] }
  • 36. MongoDB embedded documents { name: 'aaron' , scores: [ { total: 93, class: ObjectID } , { total: 46, class: ObjectID } , { total: 20, class: ObjectID } ] } think foreign keys
  • 37. MongoDB embedded documents { name: 'aaron' , scores: [ { total: 93, class: ObjectID } , { total: 46, class: ObjectID } , { total: 20, class: ObjectID } ] } { _id: ObjectID , name: 'how to be a good neighbor' , teacher: 'mr rogers' }
  • 38. MongoDB ObjectID ● unique identifier of a document ● each document has one ● auto inserted if missing
  • 39. MongoDB Insertion and UpdationInsertion and Updation
  • 40. MongoDB
  • 41. cheesy
  • 42. Atomic OperationsAtomic Operations
  • 43. MongoDB $set $unset $inc $push $pushAll $pop $pull $pullAll $addToSet $rename Atomic Ops
  • 44. MongoDB IndexingIndexing
  • 45. MongoDB Indexing ● any property ● into embedded documents ● into arrays
  • 46. MongoDB Indexing db.users.ensureIndex({ lastname: 1 }) db.users.ensureIndex({ 'body.odor': 1 }) db.users.ensureIndex({ 'body.odor': 1, age: 1 })
  • 47. MongoDB HTTP InterfaceHTTP Interface
  • 48. MongoDB HTTP Interface ● http://localhost:28017/ ● http://localhost:28017/database/collection/?limit=5 ● http://localhost:28017/database/collection/?filter_key=value
  • 49. MongoDB ● Document oriented ● Schema-less ● Rich queries ● Full index support ● Atomic operations ● MapReduce ● Auto-sharding / replication / GridFS
  • 50. MongoDB Mongoose ● https://github.com/learnboost/mongoose/tree/1.0
  • 51. Thank You http://www.mongodb.org https://github.com/mongodb https://github.com/learnboost/mongoose https://github.com/christkv/node-mongodb-native http://www.mongodb.org/display/DOCS/Production+Deployments https://github.com/aheckmann http://twitter.com/#!/aaronheckmann