SlideShare a Scribd company logo
1 of 66
Download to read offline
Intro to MongoDB
         Alex Sharp


         twitter: @ajsharp
         email: ajsharp@frothlogic.com


Monday, February 22, 2010
So what is MongoDB?




Monday, February 22, 2010
First and foremost...




Monday, February 22, 2010
IT’S THE NEW HOTNESS!!!




Monday, February 22, 2010
omgomgomg
                            SHINY OBJECTS
                             omgomgomg


Monday, February 22, 2010
MongoDB (from "humongous") is a
            scalable, high-performance, open source,
                schema-free, document-oriented
                             database.
                          - mongodb.org



Monday, February 22, 2010
Philosophy


Monday, February 22, 2010
Philosophy



                            “One size fits all” approach no longer applies




Monday, February 22, 2010
Philosophy



          Non-relational DBs scale more easily, especially horizontally




Monday, February 22, 2010
Philosophy



                Focus on speed, performance, flexibility and scalability




Monday, February 22, 2010
Philosophy



                   Not concerned with transactional stuff and relational
                                       semantics




Monday, February 22, 2010
Philosophy



                 DBs should be an on-demand commodity, in a cloud-
                                    like fashion




Monday, February 22, 2010
Philosophy
               Mongo tries to achieve
               the performance of
               traditional key-value
               stores while
               maintaining
               functionality of
               traditional RDBMS




Monday, February 22, 2010
Features


Monday, February 22, 2010
Features
               Standard database stuff




Monday, February 22, 2010
Features
               Standard database stuff
                     Indexing




Monday, February 22, 2010
Features
               Standard database stuff
                     Indexing
                     replication/failover support




Monday, February 22, 2010
Features: Document Storage



               Documents are stored in BSON (binary JSON)




Monday, February 22, 2010
Features: Document Storage



               BSON is a binary serialization of JSON-like objects




Monday, February 22, 2010
Features: Document Storage



               This is extremely powerful, b/c it means mongo
               understands JSON natively




Monday, February 22, 2010
Features: Document Storage



               Any valid JSON can be easily imported and queried




Monday, February 22, 2010
Features


               Schema-less; very flexible




Monday, February 22, 2010
Features


               Schema-less; very flexible
               no more blocking ALTER TABLE




Monday, February 22, 2010
Features



               Auto-sharding (alpha)




Monday, February 22, 2010
Features



               Makes for easy horizontal scaling




Monday, February 22, 2010
Features



               Map/Reduce




Monday, February 22, 2010
Features



               Very, very fast




Monday, February 22, 2010
Features



               Super easy to install




Monday, February 22, 2010
Features



               Strong with major languages




Monday, February 22, 2010
Features



               Document-oriented = flexible




Monday, February 22, 2010
Features: Querying
               Rich, javascript-based query syntax




Monday, February 22, 2010
Features: Querying
               Rich, javascript-based query syntax
                     Allows us to deep, nested queries




Monday, February 22, 2010
Features: Querying
               Rich, javascript-based query syntax
                     Allows us to do deep, nested queries

                     db.order.find( { shipping: { carrier: "usps" } } );




Monday, February 22, 2010
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
Features: Binary Object Store
               Efficient binary large object store via GridFS




Monday, February 22, 2010
Features: Binary Object Store
               Efficient binary large object store via GridFS
                     i.e. store images, videos, anything




Monday, February 22, 2010
Concepts


Monday, February 22, 2010
Concepts: Document-oriented
               Think of “documents” as database records




Monday, February 22, 2010
Concepts: Document-oriented
               Think of “documents” as database records
               Documents are basically just JSON objects that Mongo
               stores in binary




Monday, February 22, 2010
Concepts: Document-oriented
               Think of “collections” as database tables




Monday, February 22, 2010
Concept Mapping
             RDBMS (mysql, postgres)   MongoDB


                            Tables     Collections




Monday, February 22, 2010
Concept Mapping
             RDBMS (mysql, postgres)           MongoDB


                               Tables         Collections


                            Records/rows   Documents/objects




Monday, February 22, 2010
Concept Mapping
             RDBMS (mysql, postgres)             MongoDB


                               Tables            Collections


                            Records/rows    Documents/objects


                Queries return record(s)   Queries return a cursor



Monday, February 22, 2010
Concept Mapping
             RDBMS (mysql, postgres)              MongoDB


                               Tables            Collections


                            Records/rows      Documents/objects


            Queries return record(s)       Queries return a cursor



Monday, February 22, 2010
                                        ???
Concepts: Cursors
               Queries return “cursors” instead of collections




Monday, February 22, 2010
Concepts: Cursors
               Queries return “cursors” instead of collections
                     A cursor allows you to iterate through the result set




Monday, February 22, 2010
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
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
Concepts: Cursors
               The find() function returns a cursor object




Monday, February 22, 2010
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
Cool Features


Monday, February 22, 2010
Cool Features
               Capped collections




Monday, February 22, 2010
Cool Features
               Capped collections
                     Fixed-sized, limited operation, auto-LRU age-out
                     collections




Monday, February 22, 2010
Cool Features
               Capped collections
                     Fixed-sized, limited operation, auto-LRU age-out
                     collections
                     Fixed insertion order




Monday, February 22, 2010
Cool Features
               Capped collections
                     Fixed-sized, limited operation, auto-LRU age-out
                     collections
                     Fixed insertion order
                     Super fast




Monday, February 22, 2010
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
Cool Uses
               Data Warehouse
                     Mongo understands JSON natively




Monday, February 22, 2010
Cool Uses
               Data Warehouse
                     Mongo understands JSON natively
                     Very powerful for analysis




Monday, February 22, 2010
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
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
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
Cool Uses
               Harmonyapp.com
                     Large rails app for building websites (kind of a CMS)




Monday, February 22, 2010
Cool Uses
               Hardcore debugging
                     Spit out large amounts of data




Monday, February 22, 2010
Limitations
               Transaction support




Monday, February 22, 2010
Limitations
               Transaction support
               Relational integrity




Monday, February 22, 2010
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

More Related Content

What's hot

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBRavi Teja
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMike Dirolf
 
NOSQL and MongoDB Database
NOSQL and MongoDB DatabaseNOSQL and MongoDB Database
NOSQL and MongoDB DatabaseTariqul islam
 
MongoDB Fundamentals
MongoDB FundamentalsMongoDB Fundamentals
MongoDB FundamentalsMongoDB
 
Mongodb - NoSql Database
Mongodb - NoSql DatabaseMongodb - NoSql Database
Mongodb - NoSql DatabasePrashant Gupta
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDBCésar Trigo
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBNodeXperts
 
PostgreSQL Database Slides
PostgreSQL Database SlidesPostgreSQL Database Slides
PostgreSQL Database Slidesmetsarin
 
An Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDBAn Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDBMongoDB
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databasesJames Serra
 
MongoDB Administration 101
MongoDB Administration 101MongoDB Administration 101
MongoDB Administration 101MongoDB
 

What's hot (20)

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
NOSQL and MongoDB Database
NOSQL and MongoDB DatabaseNOSQL and MongoDB Database
NOSQL and MongoDB Database
 
MongoDB Fundamentals
MongoDB FundamentalsMongoDB Fundamentals
MongoDB Fundamentals
 
Mongodb - NoSql Database
Mongodb - NoSql DatabaseMongodb - NoSql Database
Mongodb - NoSql Database
 
Introduction to mongodb
Introduction to mongodbIntroduction to mongodb
Introduction to mongodb
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Mongo db intro.pptx
Mongo db intro.pptxMongo db intro.pptx
Mongo db intro.pptx
 
MongoDB 101
MongoDB 101MongoDB 101
MongoDB 101
 
MongodB Internals
MongodB InternalsMongodB Internals
MongodB Internals
 
PostgreSQL Database Slides
PostgreSQL Database SlidesPostgreSQL Database Slides
PostgreSQL Database Slides
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDB
 
An Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDBAn Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDB
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Mongo DB
Mongo DB Mongo DB
Mongo DB
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 
Mongodb vs mysql
Mongodb vs mysqlMongodb vs mysql
Mongodb vs mysql
 
MongoDB Administration 101
MongoDB Administration 101MongoDB Administration 101
MongoDB Administration 101
 

Similar to Intro To MongoDB

Nuxeo World Session: Semantic Technologies - Update on Recent Research
Nuxeo World Session: Semantic Technologies - Update on Recent ResearchNuxeo World Session: Semantic Technologies - Update on Recent Research
Nuxeo World Session: Semantic Technologies - Update on Recent ResearchNuxeo
 
Weotta Presentation at SF Bay Area MongoDB User Group Feb 21 2012
Weotta Presentation at SF Bay Area MongoDB User Group Feb 21 2012Weotta Presentation at SF Bay Area MongoDB User Group Feb 21 2012
Weotta Presentation at SF Bay Area MongoDB User Group Feb 21 2012MongoDB
 
Developing Plugins on OpenVBX at Greater San Francisco Bay Area LAMP Group
Developing Plugins on OpenVBX at Greater San Francisco Bay Area LAMP GroupDeveloping Plugins on OpenVBX at Greater San Francisco Bay Area LAMP Group
Developing Plugins on OpenVBX at Greater San Francisco Bay Area LAMP Groupminddog
 
Implementing Groovy Domain-Specific Languages - S2G Forum - Munich 2010
Implementing Groovy Domain-Specific Languages - S2G Forum - Munich 2010Implementing Groovy Domain-Specific Languages - S2G Forum - Munich 2010
Implementing Groovy Domain-Specific Languages - S2G Forum - Munich 2010Guillaume Laforge
 
No SQL - BarCamp Nürnberg 2010
No SQL - BarCamp Nürnberg 2010No SQL - BarCamp Nürnberg 2010
No SQL - BarCamp Nürnberg 2010Jonathan Weiss
 
Mongodb on Ruby And Rails (froscon 2010)
Mongodb on Ruby And Rails (froscon 2010)Mongodb on Ruby And Rails (froscon 2010)
Mongodb on Ruby And Rails (froscon 2010)jan_mindmatters
 
Persisting dynamic data with mongodb and mongomapper
Persisting dynamic data with mongodb and mongomapperPersisting dynamic data with mongodb and mongomapper
Persisting dynamic data with mongodb and mongomapperwonko
 
3. cloudcamp lt
3. cloudcamp lt3. cloudcamp lt
3. cloudcamp ltOpsCamp
 
Operations as Code
Operations as CodeOperations as Code
Operations as CodeOpsCamp
 
06 View Controllers
06 View Controllers06 View Controllers
06 View ControllersMahmoud
 
MongoDB is the new MySQL
MongoDB is the new MySQLMongoDB is the new MySQL
MongoDB is the new MySQLradamanthus
 
Data Loading for Ext GWT
Data Loading for Ext GWTData Loading for Ext GWT
Data Loading for Ext GWTSencha
 
Jquery Introduction
Jquery IntroductionJquery Introduction
Jquery Introductioncabbiepete
 
Introduction to CouchDB
Introduction to CouchDBIntroduction to CouchDB
Introduction to CouchDBJohn Wood
 
Mobile Development with uPortal and Infusion
Mobile Development with uPortal and InfusionMobile Development with uPortal and Infusion
Mobile Development with uPortal and Infusioncolinbdclark
 

Similar to Intro To MongoDB (20)

Nuxeo World Session: Semantic Technologies - Update on Recent Research
Nuxeo World Session: Semantic Technologies - Update on Recent ResearchNuxeo World Session: Semantic Technologies - Update on Recent Research
Nuxeo World Session: Semantic Technologies - Update on Recent Research
 
Weotta Presentation at SF Bay Area MongoDB User Group Feb 21 2012
Weotta Presentation at SF Bay Area MongoDB User Group Feb 21 2012Weotta Presentation at SF Bay Area MongoDB User Group Feb 21 2012
Weotta Presentation at SF Bay Area MongoDB User Group Feb 21 2012
 
Developing Plugins on OpenVBX at Greater San Francisco Bay Area LAMP Group
Developing Plugins on OpenVBX at Greater San Francisco Bay Area LAMP GroupDeveloping Plugins on OpenVBX at Greater San Francisco Bay Area LAMP Group
Developing Plugins on OpenVBX at Greater San Francisco Bay Area LAMP Group
 
Implementing Groovy Domain-Specific Languages - S2G Forum - Munich 2010
Implementing Groovy Domain-Specific Languages - S2G Forum - Munich 2010Implementing Groovy Domain-Specific Languages - S2G Forum - Munich 2010
Implementing Groovy Domain-Specific Languages - S2G Forum - Munich 2010
 
No SQL - BarCamp Nürnberg 2010
No SQL - BarCamp Nürnberg 2010No SQL - BarCamp Nürnberg 2010
No SQL - BarCamp Nürnberg 2010
 
Mongodb on Ruby And Rails (froscon 2010)
Mongodb on Ruby And Rails (froscon 2010)Mongodb on Ruby And Rails (froscon 2010)
Mongodb on Ruby And Rails (froscon 2010)
 
Persisting dynamic data with mongodb and mongomapper
Persisting dynamic data with mongodb and mongomapperPersisting dynamic data with mongodb and mongomapper
Persisting dynamic data with mongodb and mongomapper
 
Upgrading to Rails 3
Upgrading to Rails 3Upgrading to Rails 3
Upgrading to Rails 3
 
Symfony in the Cloud
Symfony in the CloudSymfony in the Cloud
Symfony in the Cloud
 
3. cloudcamp lt
3. cloudcamp lt3. cloudcamp lt
3. cloudcamp lt
 
Operations as Code
Operations as CodeOperations as Code
Operations as Code
 
06 View Controllers
06 View Controllers06 View Controllers
06 View Controllers
 
MongoDB is the new MySQL
MongoDB is the new MySQLMongoDB is the new MySQL
MongoDB is the new MySQL
 
No sql findings
No sql findingsNo sql findings
No sql findings
 
Data Loading for Ext GWT
Data Loading for Ext GWTData Loading for Ext GWT
Data Loading for Ext GWT
 
Persistence Smoothie
Persistence SmoothiePersistence Smoothie
Persistence Smoothie
 
Jquery Introduction
Jquery IntroductionJquery Introduction
Jquery Introduction
 
ActiveRecord 2.3
ActiveRecord 2.3ActiveRecord 2.3
ActiveRecord 2.3
 
Introduction to CouchDB
Introduction to CouchDBIntroduction to CouchDB
Introduction to CouchDB
 
Mobile Development with uPortal and Infusion
Mobile Development with uPortal and InfusionMobile Development with uPortal and Infusion
Mobile Development with uPortal and Infusion
 

More from Alex Sharp

Bldr: A Minimalist JSON Templating DSL
Bldr: A Minimalist JSON Templating DSLBldr: A Minimalist JSON Templating DSL
Bldr: A Minimalist JSON Templating DSLAlex Sharp
 
Bldr - Rubyconf 2011 Lightning Talk
Bldr - Rubyconf 2011 Lightning TalkBldr - Rubyconf 2011 Lightning Talk
Bldr - Rubyconf 2011 Lightning TalkAlex Sharp
 
Mysql to mongo
Mysql to mongoMysql to mongo
Mysql to mongoAlex Sharp
 
Refactoring in Practice - Sunnyconf 2010
Refactoring in Practice - Sunnyconf 2010Refactoring in Practice - Sunnyconf 2010
Refactoring in Practice - Sunnyconf 2010Alex Sharp
 
Refactoring in Practice - Ruby Hoedown 2010
Refactoring in Practice - Ruby Hoedown 2010Refactoring in Practice - Ruby Hoedown 2010
Refactoring in Practice - Ruby Hoedown 2010Alex Sharp
 
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010Alex Sharp
 
Practical Ruby Projects with MongoDB - Ruby Midwest
Practical Ruby Projects with MongoDB - Ruby MidwestPractical Ruby Projects with MongoDB - Ruby Midwest
Practical Ruby Projects with MongoDB - Ruby MidwestAlex Sharp
 
Practical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSFPractical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSFAlex Sharp
 
Practical Ruby Projects With Mongo Db
Practical Ruby Projects With Mongo DbPractical Ruby Projects With Mongo Db
Practical Ruby Projects With Mongo DbAlex Sharp
 
Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDDAlex Sharp
 
Testing Has Many Purposes
Testing Has Many PurposesTesting Has Many Purposes
Testing Has Many PurposesAlex Sharp
 

More from Alex Sharp (11)

Bldr: A Minimalist JSON Templating DSL
Bldr: A Minimalist JSON Templating DSLBldr: A Minimalist JSON Templating DSL
Bldr: A Minimalist JSON Templating DSL
 
Bldr - Rubyconf 2011 Lightning Talk
Bldr - Rubyconf 2011 Lightning TalkBldr - Rubyconf 2011 Lightning Talk
Bldr - Rubyconf 2011 Lightning Talk
 
Mysql to mongo
Mysql to mongoMysql to mongo
Mysql to mongo
 
Refactoring in Practice - Sunnyconf 2010
Refactoring in Practice - Sunnyconf 2010Refactoring in Practice - Sunnyconf 2010
Refactoring in Practice - Sunnyconf 2010
 
Refactoring in Practice - Ruby Hoedown 2010
Refactoring in Practice - Ruby Hoedown 2010Refactoring in Practice - Ruby Hoedown 2010
Refactoring in Practice - Ruby Hoedown 2010
 
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
 
Practical Ruby Projects with MongoDB - Ruby Midwest
Practical Ruby Projects with MongoDB - Ruby MidwestPractical Ruby Projects with MongoDB - Ruby Midwest
Practical Ruby Projects with MongoDB - Ruby Midwest
 
Practical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSFPractical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSF
 
Practical Ruby Projects With Mongo Db
Practical Ruby Projects With Mongo DbPractical Ruby Projects With Mongo Db
Practical Ruby Projects With Mongo Db
 
Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDD
 
Testing Has Many Purposes
Testing Has Many PurposesTesting Has Many Purposes
Testing Has Many Purposes
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Recently uploaded (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

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