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
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
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
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
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