SlideShare uma empresa Scribd logo
1 de 17
© 2010, OpenThink Labs. All Rights Reserved
MongoDB
The Definitive Guide
Wildan Maulana
wildan.m@openthinklabs.com
© 2010, OpenThink Labs. All Rights Reserved
1. Introduction
● A Rich Data Model
● Easy Scaling
● Tons of Features…
● …Without Sacrificing Speed
● Simple Administration
● But Wait, That’s Not All…
© 2010, OpenThink Labs. All Rights Reserved
2. Getting Started
● Documents
● Collections
● Schema-Free
● Naming
● Databases
● Getting and Starting MongoDB
● MongoDB Shell
● Running the Shell
● A MongoDB Client
● Basic Operations with the Shell
● Tips for Using the Shell
● Data Types
● Basic Data Types
● Numbers
● Dates
● Arrays
● Embedded Documents
● _id and ObjectIds
© 2010, OpenThink Labs. All Rights Reserved
3. Creating, Updating, and Deleting
Documents
● Inserting and Saving Documents
● Batch Insert
● Inserts: Internals and Implications
●
Removing Documents
● Remove Speed
● Updating Documents
● Document Replacement
● Using Modifiers
● Upserts
● Updating Multiple Documents
● Returning Updated Documents
● The Fastest Write This
Side of Mississippi
● Safe Operation
● Catching “Normal”
Errors
● Requests and
Connections
© 2010, OpenThink Labs. All Rights Reserved
4. Querying
● Introduction to find
● Specifying Which Keys
to Return
● Limitations
● Query Criteria
● Query Conditionals
● OR Queries
● $not
● Rules for Conditionals
● Type-Specific Queries
● Null
● Regular Expressions
● Querying Arrays
● Querying on Embedded Documents
● $where Queries
● Cursors
● Limits, Skips, and Sorts
● Avoiding Large Skips
● Advanced Query Options
● Getting Consistent Results
● Cursor Internals
© 2010, OpenThink Labs. All Rights Reserved
5. Indexing
● Introduction to Indexing
● Scaling Indexes
● Indexing Keys in Embedded
Documents
● Indexing for Sorts
● Uniquely Identifying Indexes
● Unique Indexes
● Dropping Duplicates
● Compound Unique Indexes
● Using explain and hint
● Index Administration
● Changing Indexes
● Geospatial Indexing
● Compound Geospatial
Indexes
● The Earth Is Not a 2D
Plane
© 2010, OpenThink Labs. All Rights Reserved
6. Aggregation
● Count
● Distinct
● Group
● Using a Finalizer
● Using a Function as a Key
● MapReduce
● Example 1: Finding All Keys in a Collection
● Example 2: Categorizing Web Pages
● MongoDB and MapReduce
© 2010, OpenThink Labs. All Rights Reserved
7. Advanced Topics
● Database Commands
● How Commands Work
● Command Reference
● Capped Collections
● Properties and Use Cases
● Creating Capped Collections
● Sorting Au NaturelTailable Cursors
● GridFS: Storing Files
● Getting Started with GridFS:
mongofiles
● Working with GridFS from the
MongoDB Drivers
● Under the Hood
● Server-Side Scripting
● db.eval
● Stored JavaScript
● Security
● Database References
● What Is a DBRef?
● Example Schema
● Driver Support for DBRefs
● When Should DBRefs Be
Used?
© 2010, OpenThink Labs. All Rights Reserved
8. Administration
● Starting and Stopping
MongoDB
● Starting from the Command
Line
● File-Based Configuration
● Stopping MongoDB
● Monitoring
● Using the Admin Interface
● serverStatus
● Mongostat
● Third-Party Plug-Ins
● Security and Authentication
● Authentication Basics
● How Authentication Works
● Other Security Considerations
● Backup and Repair
● Data File Backup
● mongodump and mongorestore
● fsync and Lock
● Slave Backups
● Repair
© 2010, OpenThink Labs. All Rights Reserved
9. Replication
● Master-Slave
Replication
● Options
● Adding and Removing
Sources
● Replica Sets
● Initializing a Set
● Nodes in a Replica Set
● Failover and Primary
Election
● Performing Operations on a Slave
● Read Scaling
● Using Slaves for Data Processing
● How It Works
● The Oplog
● Syncing
● Replication State and the Local
Database
● Blocking for Replication
● Administration
● Diagnostics
● Changing the Oplog Size
● Replication with Authentication
© 2010, OpenThink Labs. All Rights Reserved
10. Sharding
● Introduction to Sharding
● Autosharding in MongoDB
● When to Shard
● The Key to Sharding: Shard
Keys
● Sharding an Existing Collection
● Incrementing Shard Keys
Versus Random Shard Keys
● How Shard Keys Affect
Operations
● Setting Up Sharding
● Starting the Servers
● Sharding Data
● Production Configuration
● A Robust Config
● Many mongos
● A Sturdy Shard
● Physical Servers
● Sharding Administration
● config Collections
● Sharding Commands
© 2010, OpenThink Labs. All Rights Reserved
11. Example Applications
● Chemical Search Engine: Java
● Installing the Java Driver
● Using the Java Driver
● Schema Design
● Writing This in Java
● Issues
● News Aggregator: PHP
● Installing the PHP Driver
● Using the PHP Driver
● Designing the News Aggregator
● Trees of Comments
● Voting
● Custom Submission Forms: Ruby
● Installing the Ruby Driver
● Using the Ruby Driver
● Custom Form Submission
● Ruby Object Mappers and Using
MongoDB with Rails
● Real-Time Analytics: Python
● Installing PyMongo
● Using PyMongo
● MongoDB for Real-Time Analytics
● Schema
● Handling a Request
● Using Analytics Data
● Other Considerations
© 2010, OpenThink Labs. All Rights Reserved
A. Installing MongoDB
© 2010, OpenThink Labs. All Rights Reserved
B. mongo: The Shell
© 2010, OpenThink Labs. All Rights Reserved
C. MongoDB Internals
© 2010, OpenThink Labs. All Rights Reserved
Buy this book, on Amazon!
© 2010, OpenThink Labs. All Rights Reserved
Q&A
Thanks! ^_^

Mais conteúdo relacionado

Mais procurados

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Justin Smestad
 
mongoDB Performance
mongoDB PerformancemongoDB Performance
mongoDB Performance
Moshe Kaplan
 
Mongo db – document oriented database
Mongo db – document oriented databaseMongo db – document oriented database
Mongo db – document oriented database
Wojciech Sznapka
 

Mais procurados (20)

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Mongo db basics
Mongo db basicsMongo db basics
Mongo db basics
 
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...
 
High Performance Applications with MongoDB
High Performance Applications with MongoDBHigh Performance Applications with MongoDB
High Performance Applications with MongoDB
 
Practical Ruby Projects With Mongo Db
Practical Ruby Projects With Mongo DbPractical Ruby Projects With Mongo Db
Practical Ruby Projects With Mongo Db
 
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
 
mongoDB Performance
mongoDB PerformancemongoDB Performance
mongoDB Performance
 
Back to Basics Webinar 3: Introduction to Replica Sets
Back to Basics Webinar 3: Introduction to Replica SetsBack to Basics Webinar 3: Introduction to Replica Sets
Back to Basics Webinar 3: Introduction to Replica Sets
 
Webinar: Getting Started with MongoDB - Back to Basics
Webinar: Getting Started with MongoDB - Back to BasicsWebinar: Getting Started with MongoDB - Back to Basics
Webinar: Getting Started with MongoDB - Back to Basics
 
MongoDB 101
MongoDB 101MongoDB 101
MongoDB 101
 
Conceptos básicos. seminario web 3 : Diseño de esquema pensado para documentos
Conceptos básicos. seminario web 3 : Diseño de esquema pensado para documentosConceptos básicos. seminario web 3 : Diseño de esquema pensado para documentos
Conceptos básicos. seminario web 3 : Diseño de esquema pensado para documentos
 
Mongo db – document oriented database
Mongo db – document oriented databaseMongo db – document oriented database
Mongo db – document oriented database
 
Basics of MongoDB
Basics of MongoDB Basics of MongoDB
Basics of MongoDB
 
Back to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQLBack to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQL
 
Back to Basics: My First MongoDB Application
Back to Basics: My First MongoDB ApplicationBack to Basics: My First MongoDB Application
Back to Basics: My First MongoDB Application
 
MongoDB basics & Introduction
MongoDB basics & IntroductionMongoDB basics & Introduction
MongoDB basics & Introduction
 
10 Key MongoDB Performance Indicators
10 Key MongoDB Performance Indicators  10 Key MongoDB Performance Indicators
10 Key MongoDB Performance Indicators
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDBMongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDB
 

Destaque

Top 5 Javascript Frameworks for Web and Mobile App Development
Top 5 Javascript Frameworks for Web and Mobile App DevelopmentTop 5 Javascript Frameworks for Web and Mobile App Development
Top 5 Javascript Frameworks for Web and Mobile App Development
Ajeet Singh
 

Destaque (10)

Advanced Topics On Sql Injection Protection
Advanced Topics On Sql Injection ProtectionAdvanced Topics On Sql Injection Protection
Advanced Topics On Sql Injection Protection
 
Introduction to APIs & how to automate APIs testing with selenium web driver?
Introduction to APIs & how to automate APIs testing with selenium web driver?Introduction to APIs & how to automate APIs testing with selenium web driver?
Introduction to APIs & how to automate APIs testing with selenium web driver?
 
Top 5 Javascript Frameworks for Web and Mobile App Development
Top 5 Javascript Frameworks for Web and Mobile App DevelopmentTop 5 Javascript Frameworks for Web and Mobile App Development
Top 5 Javascript Frameworks for Web and Mobile App Development
 
Software Automation Testing Introduction
Software Automation Testing IntroductionSoftware Automation Testing Introduction
Software Automation Testing Introduction
 
Selenium topic 3 -Web Driver Basics
Selenium topic 3 -Web Driver BasicsSelenium topic 3 -Web Driver Basics
Selenium topic 3 -Web Driver Basics
 
Selenium WebDriver FAQ's
Selenium WebDriver FAQ'sSelenium WebDriver FAQ's
Selenium WebDriver FAQ's
 
Introduction to Selenium Web Driver
Introduction to Selenium Web DriverIntroduction to Selenium Web Driver
Introduction to Selenium Web Driver
 
Java Basics for selenium
Java Basics for seleniumJava Basics for selenium
Java Basics for selenium
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
 
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
 

Semelhante a MongoDB : The Definitive Guide

kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
Krivoy Rog IT Community
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Per Henrik Lausten
 
NODE JS OC Meetup 1
NODE JS OC Meetup 1NODE JS OC Meetup 1
NODE JS OC Meetup 1
eddify
 
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
Anna Ossowski
 

Semelhante a MongoDB : The Definitive Guide (20)

MongoDB Online Training.pdf
MongoDB Online Training.pdfMongoDB Online Training.pdf
MongoDB Online Training.pdf
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional Programmer
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud Era
 
Mongo nyc nyt + mongodb
Mongo nyc nyt + mongodbMongo nyc nyt + mongodb
Mongo nyc nyt + mongodb
 
NODE JS OC Meetup 1
NODE JS OC Meetup 1NODE JS OC Meetup 1
NODE JS OC Meetup 1
 
Ireland Moot 2013 Admin Workshop Afternoon Session
Ireland Moot 2013 Admin Workshop Afternoon SessionIreland Moot 2013 Admin Workshop Afternoon Session
Ireland Moot 2013 Admin Workshop Afternoon Session
 
Scaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQLScaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQL
 
MongoDB: Advantages of an Open Source NoSQL Database
MongoDB: Advantages of an Open Source NoSQL DatabaseMongoDB: Advantages of an Open Source NoSQL Database
MongoDB: Advantages of an Open Source NoSQL Database
 
Mongodb (1)
Mongodb (1)Mongodb (1)
Mongodb (1)
 
Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applications
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
 
Best Angular JS training in Hyderabad, India
Best Angular JS training in Hyderabad, IndiaBest Angular JS training in Hyderabad, India
Best Angular JS training in Hyderabad, India
 
Drupal performance
Drupal performanceDrupal performance
Drupal performance
 
Eko10 Workshop Opensource Database Auditing
Eko10  Workshop Opensource Database AuditingEko10  Workshop Opensource Database Auditing
Eko10 Workshop Opensource Database Auditing
 
InnoDB Scalability improvements in MySQL 8.0
InnoDB Scalability improvements in MySQL 8.0InnoDB Scalability improvements in MySQL 8.0
InnoDB Scalability improvements in MySQL 8.0
 
Eko10 workshop - OPEN SOURCE DATABASE MONITORING
Eko10 workshop - OPEN SOURCE DATABASE MONITORINGEko10 workshop - OPEN SOURCE DATABASE MONITORING
Eko10 workshop - OPEN SOURCE DATABASE MONITORING
 
Lean and mean MongoDB
Lean and mean MongoDBLean and mean MongoDB
Lean and mean MongoDB
 

Mais de Wildan Maulana

Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
Wildan Maulana
 
Pengembangan OpenThink SAS 2013-2014
Pengembangan OpenThink SAS 2013-2014Pengembangan OpenThink SAS 2013-2014
Pengembangan OpenThink SAS 2013-2014
Wildan Maulana
 
ICA – AtoM : Retensi Arsip
ICA – AtoM : Retensi ArsipICA – AtoM : Retensi Arsip
ICA – AtoM : Retensi Arsip
Wildan Maulana
 
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RWOpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
Wildan Maulana
 
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
Wildan Maulana
 
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyToolsPostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
Wildan Maulana
 
Mensetup Google Apps sebagai IdP jenis openID dan Aplikasi Berbasis CakePHP ...
Mensetup Google Apps sebagai IdP jenis openID  dan Aplikasi Berbasis CakePHP ...Mensetup Google Apps sebagai IdP jenis openID  dan Aplikasi Berbasis CakePHP ...
Mensetup Google Apps sebagai IdP jenis openID dan Aplikasi Berbasis CakePHP ...
Wildan Maulana
 
Mensetup Google Apps sebagai IdP jenis openID dan Wordpress sebagai Sp
Mensetup Google Apps sebagai IdP jenis openID dan Wordpress sebagai SpMensetup Google Apps sebagai IdP jenis openID dan Wordpress sebagai Sp
Mensetup Google Apps sebagai IdP jenis openID dan Wordpress sebagai Sp
Wildan Maulana
 
Konfigurasi simpleSAMLphp dengan Google Apps Sebagai Identity Provider
Konfigurasi simpleSAMLphp  dengan Google Apps Sebagai Identity ProviderKonfigurasi simpleSAMLphp  dengan Google Apps Sebagai Identity Provider
Konfigurasi simpleSAMLphp dengan Google Apps Sebagai Identity Provider
Wildan Maulana
 
Instalasi simpleSAMLphp sebagai Identity Provider (IdP)
Instalasi simpleSAMLphp sebagai Identity Provider (IdP)Instalasi simpleSAMLphp sebagai Identity Provider (IdP)
Instalasi simpleSAMLphp sebagai Identity Provider (IdP)
Wildan Maulana
 
Instalasi dan Konfigurasi simpleSAMLphp
Instalasi dan Konfigurasi simpleSAMLphpInstalasi dan Konfigurasi simpleSAMLphp
Instalasi dan Konfigurasi simpleSAMLphp
Wildan Maulana
 
River Restoration in Asia and Connection Between IWRM and River Restoration
River Restoration in Asia and Connection Between IWRM and River RestorationRiver Restoration in Asia and Connection Between IWRM and River Restoration
River Restoration in Asia and Connection Between IWRM and River Restoration
Wildan Maulana
 
Penilaian Siswa di Finlandia - Pendidikan Dasar
Penilaian Siswa di Finlandia - Pendidikan DasarPenilaian Siswa di Finlandia - Pendidikan Dasar
Penilaian Siswa di Finlandia - Pendidikan Dasar
Wildan Maulana
 
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and UsesProyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
Wildan Maulana
 
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang TuaOpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
Wildan Maulana
 

Mais de Wildan Maulana (20)

Hasil Pendataan Potensi Desa 2018
Hasil Pendataan Potensi Desa 2018Hasil Pendataan Potensi Desa 2018
Hasil Pendataan Potensi Desa 2018
 
Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
Double for Nothing? Experimental Evidence on an Unconditional TeacherSalary I...
 
Ketahanan Pangan #1 : Gerakan Sekolah Menanam Melon
Ketahanan Pangan #1 : Gerakan Sekolah Menanam MelonKetahanan Pangan #1 : Gerakan Sekolah Menanam Melon
Ketahanan Pangan #1 : Gerakan Sekolah Menanam Melon
 
Pengembangan OpenThink SAS 2013-2014
Pengembangan OpenThink SAS 2013-2014Pengembangan OpenThink SAS 2013-2014
Pengembangan OpenThink SAS 2013-2014
 
ICA – AtoM : Retensi Arsip
ICA – AtoM : Retensi ArsipICA – AtoM : Retensi Arsip
ICA – AtoM : Retensi Arsip
 
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RWOpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
OpenThink Labs Workshop : Ketahanan Pangan Skala RT/RW
 
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
OpenThink Labs : Dengar Pendapat Komunitas ciliwung dengan kemen pu dan kemen...
 
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyToolsPostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
 
Mensetup Google Apps sebagai IdP jenis openID dan Aplikasi Berbasis CakePHP ...
Mensetup Google Apps sebagai IdP jenis openID  dan Aplikasi Berbasis CakePHP ...Mensetup Google Apps sebagai IdP jenis openID  dan Aplikasi Berbasis CakePHP ...
Mensetup Google Apps sebagai IdP jenis openID dan Aplikasi Berbasis CakePHP ...
 
Mensetup Google Apps sebagai IdP jenis openID dan Wordpress sebagai Sp
Mensetup Google Apps sebagai IdP jenis openID dan Wordpress sebagai SpMensetup Google Apps sebagai IdP jenis openID dan Wordpress sebagai Sp
Mensetup Google Apps sebagai IdP jenis openID dan Wordpress sebagai Sp
 
Konfigurasi simpleSAMLphp dengan Google Apps Sebagai Identity Provider
Konfigurasi simpleSAMLphp  dengan Google Apps Sebagai Identity ProviderKonfigurasi simpleSAMLphp  dengan Google Apps Sebagai Identity Provider
Konfigurasi simpleSAMLphp dengan Google Apps Sebagai Identity Provider
 
Instalasi simpleSAMLphp sebagai Identity Provider (IdP)
Instalasi simpleSAMLphp sebagai Identity Provider (IdP)Instalasi simpleSAMLphp sebagai Identity Provider (IdP)
Instalasi simpleSAMLphp sebagai Identity Provider (IdP)
 
Instalasi dan Konfigurasi simpleSAMLphp
Instalasi dan Konfigurasi simpleSAMLphpInstalasi dan Konfigurasi simpleSAMLphp
Instalasi dan Konfigurasi simpleSAMLphp
 
River Restoration in Asia and Connection Between IWRM and River Restoration
River Restoration in Asia and Connection Between IWRM and River RestorationRiver Restoration in Asia and Connection Between IWRM and River Restoration
River Restoration in Asia and Connection Between IWRM and River Restoration
 
Optimasi Limpasan Air Limbah Ke Kali Surabaya (Segmen Sepanjang – Jagir) De...
Optimasi Limpasan Air Limbah  Ke Kali Surabaya (Segmen Sepanjang – Jagir)  De...Optimasi Limpasan Air Limbah  Ke Kali Surabaya (Segmen Sepanjang – Jagir)  De...
Optimasi Limpasan Air Limbah Ke Kali Surabaya (Segmen Sepanjang – Jagir) De...
 
Penilaian Siswa di Finlandia - Pendidikan Dasar
Penilaian Siswa di Finlandia - Pendidikan DasarPenilaian Siswa di Finlandia - Pendidikan Dasar
Penilaian Siswa di Finlandia - Pendidikan Dasar
 
Statistik Listrik
Statistik ListrikStatistik Listrik
Statistik Listrik
 
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and UsesProyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
Proyek Al-'Alaq : Electric Bicycles ; History, Characteristics, and Uses
 
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang TuaOpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
OpenThink SAS : Interaksi Antara Sekolah, Wali Kelas, Siswa dan Orang Tua
 
Menggunakan AlisJK : Equating
Menggunakan AlisJK : EquatingMenggunakan AlisJK : Equating
Menggunakan AlisJK : Equating
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

MongoDB : The Definitive Guide

  • 1. © 2010, OpenThink Labs. All Rights Reserved MongoDB The Definitive Guide Wildan Maulana wildan.m@openthinklabs.com
  • 2. © 2010, OpenThink Labs. All Rights Reserved 1. Introduction ● A Rich Data Model ● Easy Scaling ● Tons of Features… ● …Without Sacrificing Speed ● Simple Administration ● But Wait, That’s Not All…
  • 3. © 2010, OpenThink Labs. All Rights Reserved 2. Getting Started ● Documents ● Collections ● Schema-Free ● Naming ● Databases ● Getting and Starting MongoDB ● MongoDB Shell ● Running the Shell ● A MongoDB Client ● Basic Operations with the Shell ● Tips for Using the Shell ● Data Types ● Basic Data Types ● Numbers ● Dates ● Arrays ● Embedded Documents ● _id and ObjectIds
  • 4. © 2010, OpenThink Labs. All Rights Reserved 3. Creating, Updating, and Deleting Documents ● Inserting and Saving Documents ● Batch Insert ● Inserts: Internals and Implications ● Removing Documents ● Remove Speed ● Updating Documents ● Document Replacement ● Using Modifiers ● Upserts ● Updating Multiple Documents ● Returning Updated Documents ● The Fastest Write This Side of Mississippi ● Safe Operation ● Catching “Normal” Errors ● Requests and Connections
  • 5. © 2010, OpenThink Labs. All Rights Reserved 4. Querying ● Introduction to find ● Specifying Which Keys to Return ● Limitations ● Query Criteria ● Query Conditionals ● OR Queries ● $not ● Rules for Conditionals ● Type-Specific Queries ● Null ● Regular Expressions ● Querying Arrays ● Querying on Embedded Documents ● $where Queries ● Cursors ● Limits, Skips, and Sorts ● Avoiding Large Skips ● Advanced Query Options ● Getting Consistent Results ● Cursor Internals
  • 6. © 2010, OpenThink Labs. All Rights Reserved 5. Indexing ● Introduction to Indexing ● Scaling Indexes ● Indexing Keys in Embedded Documents ● Indexing for Sorts ● Uniquely Identifying Indexes ● Unique Indexes ● Dropping Duplicates ● Compound Unique Indexes ● Using explain and hint ● Index Administration ● Changing Indexes ● Geospatial Indexing ● Compound Geospatial Indexes ● The Earth Is Not a 2D Plane
  • 7. © 2010, OpenThink Labs. All Rights Reserved 6. Aggregation ● Count ● Distinct ● Group ● Using a Finalizer ● Using a Function as a Key ● MapReduce ● Example 1: Finding All Keys in a Collection ● Example 2: Categorizing Web Pages ● MongoDB and MapReduce
  • 8. © 2010, OpenThink Labs. All Rights Reserved 7. Advanced Topics ● Database Commands ● How Commands Work ● Command Reference ● Capped Collections ● Properties and Use Cases ● Creating Capped Collections ● Sorting Au NaturelTailable Cursors ● GridFS: Storing Files ● Getting Started with GridFS: mongofiles ● Working with GridFS from the MongoDB Drivers ● Under the Hood ● Server-Side Scripting ● db.eval ● Stored JavaScript ● Security ● Database References ● What Is a DBRef? ● Example Schema ● Driver Support for DBRefs ● When Should DBRefs Be Used?
  • 9. © 2010, OpenThink Labs. All Rights Reserved 8. Administration ● Starting and Stopping MongoDB ● Starting from the Command Line ● File-Based Configuration ● Stopping MongoDB ● Monitoring ● Using the Admin Interface ● serverStatus ● Mongostat ● Third-Party Plug-Ins ● Security and Authentication ● Authentication Basics ● How Authentication Works ● Other Security Considerations ● Backup and Repair ● Data File Backup ● mongodump and mongorestore ● fsync and Lock ● Slave Backups ● Repair
  • 10. © 2010, OpenThink Labs. All Rights Reserved 9. Replication ● Master-Slave Replication ● Options ● Adding and Removing Sources ● Replica Sets ● Initializing a Set ● Nodes in a Replica Set ● Failover and Primary Election ● Performing Operations on a Slave ● Read Scaling ● Using Slaves for Data Processing ● How It Works ● The Oplog ● Syncing ● Replication State and the Local Database ● Blocking for Replication ● Administration ● Diagnostics ● Changing the Oplog Size ● Replication with Authentication
  • 11. © 2010, OpenThink Labs. All Rights Reserved 10. Sharding ● Introduction to Sharding ● Autosharding in MongoDB ● When to Shard ● The Key to Sharding: Shard Keys ● Sharding an Existing Collection ● Incrementing Shard Keys Versus Random Shard Keys ● How Shard Keys Affect Operations ● Setting Up Sharding ● Starting the Servers ● Sharding Data ● Production Configuration ● A Robust Config ● Many mongos ● A Sturdy Shard ● Physical Servers ● Sharding Administration ● config Collections ● Sharding Commands
  • 12. © 2010, OpenThink Labs. All Rights Reserved 11. Example Applications ● Chemical Search Engine: Java ● Installing the Java Driver ● Using the Java Driver ● Schema Design ● Writing This in Java ● Issues ● News Aggregator: PHP ● Installing the PHP Driver ● Using the PHP Driver ● Designing the News Aggregator ● Trees of Comments ● Voting ● Custom Submission Forms: Ruby ● Installing the Ruby Driver ● Using the Ruby Driver ● Custom Form Submission ● Ruby Object Mappers and Using MongoDB with Rails ● Real-Time Analytics: Python ● Installing PyMongo ● Using PyMongo ● MongoDB for Real-Time Analytics ● Schema ● Handling a Request ● Using Analytics Data ● Other Considerations
  • 13. © 2010, OpenThink Labs. All Rights Reserved A. Installing MongoDB
  • 14. © 2010, OpenThink Labs. All Rights Reserved B. mongo: The Shell
  • 15. © 2010, OpenThink Labs. All Rights Reserved C. MongoDB Internals
  • 16. © 2010, OpenThink Labs. All Rights Reserved Buy this book, on Amazon!
  • 17. © 2010, OpenThink Labs. All Rights Reserved Q&A Thanks! ^_^