Intro To MongoDB

55,180
-1

Published on

Slides for a talk I gave at the LA WebDev meetup on 02/23/2010.

Published in: Technology, Education
4 Comments
61 Likes
Statistics
Notes
No Downloads
Views
Total Views
55,180
On Slideshare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
1,434
Comments
4
Likes
61
Embeds 0
No embeds

No notes for slide

Intro To MongoDB

  1. Intro to MongoDB Alex Sharp twitter: @ajsharp email: ajsharp@frothlogic.com Monday, February 22, 2010
  2. So what is MongoDB? Monday, February 22, 2010
  3. First and foremost... Monday, February 22, 2010
  4. IT’S THE NEW HOTNESS!!! Monday, February 22, 2010
  5. omgomgomg SHINY OBJECTS omgomgomg Monday, February 22, 2010
  6. MongoDB (from "humongous") is a scalable, high-performance, open source, schema-free, document-oriented database. - mongodb.org Monday, February 22, 2010
  7. Philosophy Monday, February 22, 2010
  8. Philosophy “One size fits all” approach no longer applies Monday, February 22, 2010
  9. Philosophy Non-relational DBs scale more easily, especially horizontally Monday, February 22, 2010
  10. Philosophy Focus on speed, performance, flexibility and scalability Monday, February 22, 2010
  11. Philosophy Not concerned with transactional stuff and relational semantics Monday, February 22, 2010
  12. Philosophy DBs should be an on-demand commodity, in a cloud- like fashion Monday, February 22, 2010
  13. Philosophy Mongo tries to achieve the performance of traditional key-value stores while maintaining functionality of traditional RDBMS Monday, February 22, 2010
  14. Features Monday, February 22, 2010
  15. Features Standard database stuff Monday, February 22, 2010
  16. Features Standard database stuff Indexing Monday, February 22, 2010
  17. Features Standard database stuff Indexing replication/failover support Monday, February 22, 2010
  18. Features: Document Storage Documents are stored in BSON (binary JSON) Monday, February 22, 2010
  19. Features: Document Storage BSON is a binary serialization of JSON-like objects Monday, February 22, 2010
  20. Features: Document Storage This is extremely powerful, b/c it means mongo understands JSON natively Monday, February 22, 2010
  21. Features: Document Storage Any valid JSON can be easily imported and queried Monday, February 22, 2010
  22. Features Schema-less; very flexible Monday, February 22, 2010
  23. Features Schema-less; very flexible no more blocking ALTER TABLE Monday, February 22, 2010
  24. Features Auto-sharding (alpha) Monday, February 22, 2010
  25. Features Makes for easy horizontal scaling Monday, February 22, 2010
  26. Features Map/Reduce Monday, February 22, 2010
  27. Features Very, very fast Monday, February 22, 2010
  28. Features Super easy to install Monday, February 22, 2010
  29. Features Strong with major languages Monday, February 22, 2010
  30. Features Document-oriented = flexible Monday, February 22, 2010
  31. Features: Querying Rich, javascript-based query syntax Monday, February 22, 2010
  32. Features: Querying Rich, javascript-based query syntax Allows us to deep, nested queries Monday, February 22, 2010
  33. Features: Querying Rich, javascript-based query syntax Allows us to do deep, nested queries db.order.find( { shipping: { carrier: "usps" } } ); Monday, February 22, 2010
  34. Features: Querying Rich, javascript-based query syntax Allows us to deep, nested queries db.order.find( { shipping: { carrier: "usps" } } ); shipping is an embedded document (object) Monday, February 22, 2010
  35. Features: Binary Object Store Efficient binary large object store via GridFS Monday, February 22, 2010
  36. Features: Binary Object Store Efficient binary large object store via GridFS i.e. store images, videos, anything Monday, February 22, 2010
  37. Concepts Monday, February 22, 2010
  38. Concepts: Document-oriented Think of “documents” as database records Monday, February 22, 2010
  39. Concepts: Document-oriented Think of “documents” as database records Documents are basically just JSON objects that Mongo stores in binary Monday, February 22, 2010
  40. Concepts: Document-oriented Think of “collections” as database tables Monday, February 22, 2010
  41. Concept Mapping RDBMS (mysql, postgres) MongoDB Tables Collections Monday, February 22, 2010
  42. Concept Mapping RDBMS (mysql, postgres) MongoDB Tables Collections Records/rows Documents/objects Monday, February 22, 2010
  43. Concept Mapping RDBMS (mysql, postgres) MongoDB Tables Collections Records/rows Documents/objects Queries return record(s) Queries return a cursor Monday, February 22, 2010
  44. Concept Mapping RDBMS (mysql, postgres) MongoDB Tables Collections Records/rows Documents/objects Queries return record(s) Queries return a cursor Monday, February 22, 2010 ???
  45. Concepts: Cursors Queries return “cursors” instead of collections Monday, February 22, 2010
  46. Concepts: Cursors Queries return “cursors” instead of collections A cursor allows you to iterate through the result set Monday, February 22, 2010
  47. Concepts: Cursors Queries return “cursors” instead of collections A cursor allows you to iterate through the result set A big reason for this is performance Monday, February 22, 2010
  48. Concepts: Cursors Queries return “cursors” instead of collections A cursor allows you to iterate through the result set A big reason for this is performance Much more efficient than loading all objects into memory Monday, February 22, 2010
  49. Concepts: Cursors The find() function returns a cursor object Monday, February 22, 2010
  50. Concepts: Cursors The find() function returns a cursor object var cursor = db.logged_requests.find({ 'status_code' : 200 }) cursor.hasNext() // "true" cursor.forEach( function(item) { print(tojson(item)) } ); cursor.hasNext() // "false" Monday, February 22, 2010
  51. Cool Features Monday, February 22, 2010
  52. Cool Features Capped collections Monday, February 22, 2010
  53. Cool Features Capped collections Fixed-sized, limited operation, auto-LRU age-out collections Monday, February 22, 2010
  54. Cool Features Capped collections Fixed-sized, limited operation, auto-LRU age-out collections Fixed insertion order Monday, February 22, 2010
  55. Cool Features Capped collections Fixed-sized, limited operation, auto-LRU age-out collections Fixed insertion order Super fast Monday, February 22, 2010
  56. Cool Features Capped collections Fixed-sized, limited operation, auto-LRU age-out collections Fixed insertion order Super fast Ideal for logging and caching Monday, February 22, 2010
  57. Cool Uses Data Warehouse Mongo understands JSON natively Monday, February 22, 2010
  58. Cool Uses Data Warehouse Mongo understands JSON natively Very powerful for analysis Monday, February 22, 2010
  59. Cool Uses Data Warehouse Mongo understands JSON natively Very powerful for analysis Query a bunch of data from some web service Monday, February 22, 2010
  60. Cool Uses Data Warehouse Mongo understands JSON natively Very powerful for analysis Query a bunch of data from some web service Import into mongo (mongoimport -f filename.json) Monday, February 22, 2010
  61. Cool Uses Data Warehouse Mongo understands JSON natively Very powerful for analysis Query a bunch of data from some web service Import into mongo (mongoimport -f filename.json) Analyze to your heart’s content Monday, February 22, 2010
  62. Cool Uses Harmonyapp.com Large rails app for building websites (kind of a CMS) Monday, February 22, 2010
  63. Cool Uses Hardcore debugging Spit out large amounts of data Monday, February 22, 2010
  64. Limitations Transaction support Monday, February 22, 2010
  65. Limitations Transaction support Relational integrity Monday, February 22, 2010
  66. Resources http://mongodb.org http://www.mongodb.org/display/DOCS/Tutorial http://www.mongodb.org/display/DOCS/Use+Cases http://blog.mongodb.org/post/172254834/mongodb- is-fantastic-for-logging http://github.com/ajsharp/mongo-conf Monday, February 22, 2010
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×