SlideShare une entreprise Scribd logo
1  sur  75
Senior Solutions Architect, 10gen
Mark Helmstetter
General Technical
Overview of MongoDB for
Dev Teams
Agenda
• A bit of history…
• Introducing MongoDB
• MongoDB CRUD Operations
• Working with Indexes in MongoDB
• Aggregation Framework
• MongoDB Ecosystem
A bit of history…
RDBMS Strengths
• Data stored is very compact
• Rigid schemas have led to powerful query
capabilities
• Data is optimized for joins and storage
• Robust ecosystem of tools, libraries, integrations
• 40 years old!
It hides what you’re really
doing
It makes development hard
Relational
Database
Object Relational
Mapping
Application
Code XML Config DB Schema
What do they have in
common?
Enter “Big Data”
• Gartner defines it with 3Vs
• Volume
– Vast amounts of data being collected
• Variety
– Evolving data
– Uncontrolled formats, no single schema
– Unknown at design time
• Velocity
– Inbound data speed
– Fast read/write operations
– Low latency
Mapping Big Data to RDBMS
• Difficult to store uncontrolled data formats
• Scaling via big iron or custom data
marts/partitioning schemes
• Schema must be known at design time
• Impedance mismatch with agile development
and deployment techniques
• Doesn‟t map well to native language constructs
Introducing MongoDB
Goals
• Scale horizontally over commodity systems
• Incorporate what works for RDBMSs
– Rich data models, ad-hoc queries, full indexes
• Drop what doesn‟t work well
– Complex schemas, multi-row transactions, complex joins
• Do not homogenize APIs
• Match agile development and deployment
workflows
Key Features
• Data represented as documents (JSON)
– Flexible-schema
– Storage/wire format is BSON
• Full CRUD support (Create, Read, Update, Delete)
– Atomic in-place updates
– Ad-hoc queries: Equality, RegEx, Ranges,Geospatial,Text
• Secondary indexes
• Replication – redundancy, failover
• Sharding – partitioning for read/write scalability
Terminology
RDBMS MongoDB
Database Database
Table Collection
Row Document
Document Oriented, Dynamic
Schema
name: “jeff”,
eyes: “blue”,
height: 72,
boss: “ben”}
{name: “brendan”,
aliases: [“el diablo”]}
name: “ben”,
hat: ”yes”}
{name: “matt”,
pizza: “DiGiorno”,
height: 72,
boss: 555.555.1212}
{name: “will”,
eyes: “blue”,
birthplace: “NY”,
aliases: [“bill”, “la
ciacco”],
gender: ”???”,
boss: ”ben”}
MongoDB is full featured
MongoDB
{
first_name: „Paul‟,
surname: „Miller‟,
city: „London‟,
location: [45.123,47.232],
cars: [
{ model: „Bently‟,
year: 1973,
value: 100000, … },
{ model: „Rolls Royce‟,
year: 1965,
value: 330000, … }
}
}
Rich Queries
• Find Paul’s cars
• Find everybody who owns a car built
between 1970 and 1980
Geospatial • Find all of the car owners in London
Text Search
• Find all the cars described as having
leather seats
Aggregation
• What’s the average value of Paul’s car
collection
Map Reduce
• What is the ownership pattern of colors
by geography over time? (is purple
trending up in China?)
Developers are more
productive
Application
Code
Relational
Database
Object Relational
Mapping
XML Config DB Schema
Developers are more
productive
Application
Code
Relational
Database
Object Relational
Mapping
XML Config DB Schema
MongoDB Scales Better
Vs.
Price
Scale
Price
Scale
MongoDB CRUD
Operations
> use blog
> var post = {
author: "markh",
date: new Date(),
title: "My First Blog Post",
body: "MongoDB is an open source document-oriented database
system developed and supported by 10gen.",
tags: ["MongoDB"]
}
> db.posts.insert(post)
Create – insert()
> var post = {
"_id" : 1,
"author" : "markh",
"title" : "MetLife builds innovative customer service application
using MongoDB",
"body" : "MetLife built a working prototype in two weeks and
was live in U.S. call centers in 90 days.",
"date" : ISODate("2013-05-07T00:00:00.000Z"),
"tags" : ["MongoDB", "Database", "Big Data"]
}
> db.posts.update({ _id:1 }, post, { upsert : true })
// upsert option with <query> argument on _id -- same as save()
Upsert
> db.posts.findOne()
{
"_id" : ObjectId("517ed472e14b748a44dc0549"),
"author" : "markh",
"date" : ISODate("2013-05-29T20:13:37.349Z"),
"title" : "My First Blog Post",
"body" : "MongoDB is an open source document-oriented
database system developed and supported by 10gen.",
"tags" : ["MongoDB"]
}
// _id is unique but can be anything you like
Read – findOne()
> db.posts.findOne({author:"markh"})
{
"_id" : ObjectId("517ed472e14b748a44dc0549"),
"author" : "markh",
"date" : ISODate("2013-05-29T20:13:37.349Z"),
"title" : "My First Blog Post",
"body" : "MongoDB is an open source document-oriented
database system developed and supported by 10gen.",
"tags" : ["MongoDB"]
}
Read – findOne()
> db.posts.find({author:"markh"})
{
"_id" : ObjectId("517ed472e14b748a44dc0549"),
"author" : "markh",
"date" : ISODate("2013-05-29T20:13:37.349Z"),
"title" : "My First Blog Post",
"body" : "MongoDB is an open source document-oriented
database system developed and supported by 10gen.",
"tags" : ["MongoDB"]
}
…
Read – find()
> db.posts.find( { author:"markh" } , { _id:0, author:1 } )
{ "author" : "markh" }
Projections
// Ranges: $lt, $lte, $gt, $gte
> db.posts.find( {
author : "markh",
date : {
$gte : ISODate("2013-01-01T00:00:00.000Z"),
$lt : ISODate("2013-05-10T02:50:27.874Z")
}
})
{ "title" : "MetLife builds innovative customer service application
using MongoDB",
"date" : ISODate("2013-05-07T00:00:00Z") }
Range Query Operators
// Set: $in, $all, $nin
> db.posts.find( {
author : "markh",
tags : { $all : [ "MongoDB", "Database", "Big Data" ]}
}, { title:1 })
{
"_id" : 1,
"title" : "MetLife builds innovative customer service application
using MongoDB"
}
Set Query Operators
// Logical: $or, $and, $not, $nor
> db.posts.find( {
author : "markh",
$or : [
{ title : /first/i },
{ body : /prototype/i }
]
} ).count()
2
Logical Query Operators
> var post = {
author: "markh",
date : ISODate("2013-05-29T20:13:37.349Z"),
title: "MongoDB is the #1 NoSQL Database",
body: "MongoDB is an open source document-oriented database
system developed and supported by 10gen.",
tags: ["MongoDB"]
}
> db.posts.update(
{ _id:ObjectId("517ed472e14b748a44dc0549") },
post
)
Update
> db.posts.update(
{ _id: 1},
{ $set: {slug:"mongodb"} }
)
> db.posts.update(
{ _id: 1 },
{ $unset: {slug:1} }
)
> db.posts.update(
{ _id: 1 },
{ $inc: {revision:1} }
)
Update Operators
// Array Update Operators
// $set, $unset
// $push, $pop, $pull, $pullAll, $addToSet
> comment = {
userid: "fred",
date: new Date(),
text: "I totally agree!"
}
> db.posts.update( { _id: 1 }, {
$push: {comments: comment}
});
Array Update Operators
book = {
_id: 123456789,
title: "MongoDB: The Definitive Guide",
available: 1,
checkout: [ { by: "joe", date: ISODate("2012-10-15") } ]
}
> db.books.findAndModify ( {
query: { _id: 123456789, available: { $gt: 0 } },
update: {$inc: { available: -1 },
$push: { checkout: { by: "abc", date: new Date() } } }
} )
findAndModify
// Delete EVERYTHING in the collection
> db.posts.remove()
// Delete based on query criteria
> db.posts.remove( { _id:3 } )
> db.posts.remove( { author:"john" } )
// Only delete one document using "justOne" option
> db.posts.remove( { author:"john" }, true )
Delete
Working with Indexes in
MongoDB
Indexes are the single biggest
tunable performance factor in
MongoDB
Absent or suboptimal indexes
are the most common
avoidable MongoDB
performance problem.
// Default (unique) index on _id
// create an ascending index on “author”
> db.posts.ensureIndex({author:1})
> db.posts.find({author:"markh"})
Indexing a single value
// Arrays of values (multikey indexes)
tags: [“MongoDB”, “Database”, “NoSQL”]
> db.posts.ensureIndex({ tags: 1 })
> db.posts.find({tags: "MongoDB"})
Indexing Array Elements
// Multiple fields (compound key indexes)
> db.posts.ensureIndex({
author: 1,
date: -1
})
> db.posts.find( {
author : "markh",
date : {
$gte : ISODate("2013-01-01T00:00:00.000Z"),
$lt : ISODate("2013-05-10T02:50:27.874Z")
}
})
Compound Indexes
// Subdocuments
{
…
comments: [ {
userid: "fred",
date: new Date(),
text: "I totally agree!"
} ]
}
db.posts.ensureIndex( { "comments.userid": 1 } )
Indexing Subdocuments
> db.pubs.insert( [
{name: "Ned Devine's",
loc : { type : "Point", coordinates : [ -77.410018, 38.9516 ] } },
{name: "O'Sullivan's",
loc : { type : "Point", coordinates : [ -77.386329, 38.970754 ] } },
{name: "Old Brogue",
loc : { type : "Point", coordinates : [ -77.29067, 38.998542 ] } },
{name: "Finnegan's",
loc : { type : "Point", coordinates : [ -77.395275, 38.952734 ] } }
])
> db.pubs.ensureIndex( { loc : "2dsphere" }
Geospatial Indexes
> db.pubs.find( { loc : { $near :
{ $geometry :
{ type : "Point" ,
coordinates: [ -77.386164, 38.971088 ] } },
$maxDistance : 500
} } )
{ "name" : "O'Sullivan's",
"loc" : { "type" : "Point", "coordinates" : [ -77.386329, 38.970754 ] } }
Geospatial Indexes
> db.pubs.insert( [
{ description: "Irish Pub, serving great Irish beers",
menuItems: ["Bangers & Mash", "Fish & Chips"] },
{ description:"Sports bar and restaurant",
menuItems: [ "Burgers", "Wings", "Pizza"] },
{ description:"Beer joint",
menuItems: [ "Belgian Beers", "Micro Brews", "Cask Ales"] }
])
> db.pubs.ensureIndex( {
description: "text",
menuItems: "text"
} )
Text Indexes
> db.pubs.runCommand( "text", { search: "beer",
project: { _id: 0 } } ).results
[
{"score" : 1.5, "obj" : {
"description" : "Beer joint",
"menuItems" : ["Belgian Beers", "Micro Brews", "Cask Ales"]
} },
{"score" : 0.5833333333333334, "obj" : {
"description" : "Irish Pub, serving great Irish beers",
"menuItems" : ["Bangers & Mash", "Fish & Chips", "Sheperd's Pie"]
} } ]
Text Indexes
// username in users collection must be unique
db.users.ensureIndex( { username: 1 }, { unique: true } )
Uniqueness Constraints
// Only documents with comments.userid will be indexed
db.posts.ensureIndex(
{ "comments.userid": 1 } ,
{ sparse: true }
)
// Allow multiple documents to not have a sku field
db.products.ensureIndex( {sku: 1}, {unique: true, sparse: true} )
Sparse Indexes
Aggregation
Framework
Pipeline
• Process a stream of documents
– Original input is a collection
– Final output is a result document
• Series of operators
– Filter or transform data
– Input/output chain
ps ax | grep mongod | head -n 1
Pipeline Operators
• $match
• $project
• $group
• $unwind
• $sort
• $limit
• $skip
Aggregation Framework
SQL Statement MongoDB Aggregation Statment
SELECT COUNT(*) AS count
FROM orders
db.orders.aggregate( [
{ $group: { _id: null,
count: { $sum: 1 } } }
] )
SELECT SUM(price) AS total
FROM orders
db.orders.aggregate( [
{ $group: { _id: null,
total: { $sum: "$price" } } }
] )
SELECT cust_id, SUM(price) AS total
FROM orders
GROUP BY cust_id
db.orders.aggregate( [
{ $group: { _id: "$cust_id",
total: { $sum: "$price" } } }
] )
SELECT cust_id, SUM(price) as total
FROM orders
WHERE status = 'A'
GROUP BY cust_id
db.orders.aggregate( [
{ $match: { status: 'A' } },
{ $group: { _id: "$cust_id",
total: { $sum: "$price" } } }
] )
{
title: "The Great Gatsby",
pages: 218,
language: "English"
}
{
title: "War and Peace",
pages: 1440,
language: "Russian"
}
{
title: "Atlas Shrugged",
pages: 1088,
language: "English"
}
Matching Field Values
{ $match: {
language: "Russian"
}}
{
title: "War and Peace",
pages: 1440,
language: "Russian"
}
{
title: "The Great Gatsby",
pages: 218,
language: "English"
}
{
title: "War and Peace",
pages: 1440,
language: "Russian"
}
{
title: "Atlas Shrugged",
pages: 1088,
language: "English"
}
Matching with Query
Operators
{ $match: {
pages: { $gt: 1000 }
}}
{
title: "War and Peace",
pages: 1440,
language: "Russian"
}
{
title: "Atlas Shrugged",
pages: 1088,
language: "English"
}
{
title: "The Great Gatsby",
pages: 218,
language: "English"
}
{
title: "War and Peace",
pages: 1440,
language: "Russian"
}
{
title: "Atlas Shrugged",
pages: 1088,
language: "English"
}
Calculating an Average
{ $group: {
_id: "$language",
avgPages: { $avg:
"$pages" }
}}
{
_id: "Russian",
avgPages: 1440
}
{
_id: "English",
avgPages: 653
}
{
title: "The Great Gatsby",
pages: 218,
language: "English"
}
{
title: "War and Peace",
pages: 1440,
language: "Russian”
}
{
title: "Atlas Shrugged",
pages: 1088,
language: "English"
}
Summating Fields and
Counting
{ $group: {
_id: "$language",
numTitles: { $sum: 1 },
sumPages: { $sum: "$pages" }
}}
{
_id: "Russian",
numTitles: 1,
sumPages: 1440
}
{
_id: "English",
numTitles: 2,
sumPages: 1306
}
MongoDB Ecosystem
MongoDB Ecosystem
Drivers
Libraries /
Framework
s
Applications
Monitoring
Tools
Admin
Tools
ETL Tools
Deployment
Tools
IDEs
Communit
y
http://docs.mongodb.org/ecosystem/
Global Community
4,000,000+
MongoDB Downloads
50,000+
Online Education Registrants
15,000+
MongoDB User Group Members
14,000+
MongoDB Monitoring Service (MMS) Users
10,000+
Annual MongoDB DaysAttendees
MongoDB is the leading NoSQL
Database
MongoDB Users
Use Cases
Content
Management
Operational
Intelligence
High Volume
Data Feeds
E-Commerce
User Data
Management
http://www.10gen.com/customers
MongoDB Books
• http://docs.mongodb.org/
Online Manual
• http://education.10gen.com
Free Online MongoDB Training
Drivers
Community Supported
Drivers
Drivers
Drivers for most popular
programming languages and
frameworks
Java
Python
Perl
Ruby
Haskell
JavaScript
PowerShell
Prolog
Racket
• CakePHP
• CodeIgniter
• Fat-Free
• Lithium
• Symfony 2
• TechMVC
• Vork
• TURBOPY
• Grails
• Pyramid
• Django
Ecosystem – Web Application
Frameworks
• Morphia
• Doctrine
• Kohana
• Yii
• MongoRecord
• ActiveMongo
• Comfi
• Mandango
• MongoDB PHP ODM
• Mongoose
• Spring Data MongoDB
• Hibernate OGM
• MongoEngine
• Salat
Ecosystem – ODM
• Drupal
• Locomotive
• MongoPress
• Calipso
• Frameworks
– Web frameworks with CMS capabilitites
– v7files / Vermongo
Ecosystem – CMS
• MMS
• Munin MongoDB Plugin
• Nagios
• Ganglia
• Zabbix
• Scout
• Server Density
Ecosystem – Monitoring Tools
• Edda
• Fang of Mongo
• Umongo
• MongoExplorer
• MongoHub
• MongoVision
• MongoVUE
• mViewer
• Opricot
• PHPMoAdmin
• RockMongo
• Genghis
• Meclipse
• Humongous
• MongoDB ODA
plugin for BIRT
• Monad
Management
for MongoDB
Ecosystem – Admin UIs
• HTTP Console / Simple REST Interface (built-in)
• Sleepy Mongoose (Python)
• DrowsyDromedary (Ruby)
• MongoDB Rest (Node.js)
• MongoDB Java REST Server
Ecosystem – HTTP/REST
Interfaces
• GridFS
– Thundergrid
– Mongofilesystem
• Deployment /
Mangagement
– puppet-mongodb
– chef-mongodb
• MongoDB Pagination
• Morph
• Mongodloid
• SimpleMongoPhp
• Mongo-Queue-PHP
Ecosystem – Miscelenia
• MongoDB is a full-featured, general purpose
database
• Flexible document data model provides
– Greater flexibility
– Greater agility
• MongoDB is built for "Big Data"
• Healthy, strong, and growing ecosystem /
community
Conclusion
• Presentations / Webinars
– http://www.10gen.com/presentations
• Customer Success Stories
– http://www.10gen.com/customers
• MongoDB Documentation
– http://docs.mongodb.org/
• Community
– https://groups.google.com/group/mongodb-user
– http://stackoverflow.com/questions/tagged/mongodb
Resources
Questions
Senior Solutions Architect, 10gen
Mark Helmstetter
Thank You
@helmstetter

Contenu connexe

Tendances

Webinar: Schema Design
Webinar: Schema DesignWebinar: Schema Design
Webinar: Schema DesignMongoDB
 
Building a Scalable Inbox System with MongoDB and Java
Building a Scalable Inbox System with MongoDB and JavaBuilding a Scalable Inbox System with MongoDB and Java
Building a Scalable Inbox System with MongoDB and Javaantoinegirbal
 
Inside MongoDB: the Internals of an Open-Source Database
Inside MongoDB: the Internals of an Open-Source DatabaseInside MongoDB: the Internals of an Open-Source Database
Inside MongoDB: the Internals of an Open-Source DatabaseMike Dirolf
 
Mongo DB schema design patterns
Mongo DB schema design patternsMongo DB schema design patterns
Mongo DB schema design patternsjoergreichert
 
MongoDB + Java - Everything you need to know
MongoDB + Java - Everything you need to know MongoDB + Java - Everything you need to know
MongoDB + Java - Everything you need to know Norberto Leite
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema DesignAlex Litvinok
 
Webinar: Building Your First App with MongoDB and Java
Webinar: Building Your First App with MongoDB and JavaWebinar: Building Your First App with MongoDB and Java
Webinar: Building Your First App with MongoDB and JavaMongoDB
 
Schema Design with MongoDB
Schema Design with MongoDBSchema Design with MongoDB
Schema Design with MongoDBrogerbodamer
 
Beyond the Basics 2: Aggregation Framework
Beyond the Basics 2: Aggregation Framework Beyond the Basics 2: Aggregation Framework
Beyond the Basics 2: Aggregation Framework MongoDB
 
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 ApplicationMongoDB
 
MongoDB Europe 2016 - Debugging MongoDB Performance
MongoDB Europe 2016 - Debugging MongoDB PerformanceMongoDB Europe 2016 - Debugging MongoDB Performance
MongoDB Europe 2016 - Debugging MongoDB PerformanceMongoDB
 
Back to Basics Webinar 4: Advanced Indexing, Text and Geospatial Indexes
Back to Basics Webinar 4: Advanced Indexing, Text and Geospatial IndexesBack to Basics Webinar 4: Advanced Indexing, Text and Geospatial Indexes
Back to Basics Webinar 4: Advanced Indexing, Text and Geospatial IndexesMongoDB
 
Building Apps with MongoDB
Building Apps with MongoDBBuilding Apps with MongoDB
Building Apps with MongoDBNate Abele
 
Back to Basics Webinar 5: Introduction to the Aggregation Framework
Back to Basics Webinar 5: Introduction to the Aggregation FrameworkBack to Basics Webinar 5: Introduction to the Aggregation Framework
Back to Basics Webinar 5: Introduction to the Aggregation FrameworkMongoDB
 
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...MongoDB
 
"Powerful Analysis with the Aggregation Pipeline (Tutorial)"
"Powerful Analysis with the Aggregation Pipeline (Tutorial)""Powerful Analysis with the Aggregation Pipeline (Tutorial)"
"Powerful Analysis with the Aggregation Pipeline (Tutorial)"MongoDB
 
MongoDB - Back to Basics - La tua prima Applicazione
MongoDB - Back to Basics - La tua prima ApplicazioneMongoDB - Back to Basics - La tua prima Applicazione
MongoDB - Back to Basics - La tua prima ApplicazioneMassimo Brignoli
 

Tendances (20)

Webinar: Schema Design
Webinar: Schema DesignWebinar: Schema Design
Webinar: Schema Design
 
Building a Scalable Inbox System with MongoDB and Java
Building a Scalable Inbox System with MongoDB and JavaBuilding a Scalable Inbox System with MongoDB and Java
Building a Scalable Inbox System with MongoDB and Java
 
Inside MongoDB: the Internals of an Open-Source Database
Inside MongoDB: the Internals of an Open-Source DatabaseInside MongoDB: the Internals of an Open-Source Database
Inside MongoDB: the Internals of an Open-Source Database
 
Mongo DB schema design patterns
Mongo DB schema design patternsMongo DB schema design patterns
Mongo DB schema design patterns
 
MongoDB + Java - Everything you need to know
MongoDB + Java - Everything you need to know MongoDB + Java - Everything you need to know
MongoDB + Java - Everything you need to know
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema Design
 
MongoDB at GUL
MongoDB at GULMongoDB at GUL
MongoDB at GUL
 
Webinar: Building Your First App with MongoDB and Java
Webinar: Building Your First App with MongoDB and JavaWebinar: Building Your First App with MongoDB and Java
Webinar: Building Your First App with MongoDB and Java
 
Schema Design with MongoDB
Schema Design with MongoDBSchema Design with MongoDB
Schema Design with MongoDB
 
Beyond the Basics 2: Aggregation Framework
Beyond the Basics 2: Aggregation Framework Beyond the Basics 2: Aggregation Framework
Beyond the Basics 2: Aggregation Framework
 
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 Europe 2016 - Debugging MongoDB Performance
MongoDB Europe 2016 - Debugging MongoDB PerformanceMongoDB Europe 2016 - Debugging MongoDB Performance
MongoDB Europe 2016 - Debugging MongoDB Performance
 
Back to Basics Webinar 4: Advanced Indexing, Text and Geospatial Indexes
Back to Basics Webinar 4: Advanced Indexing, Text and Geospatial IndexesBack to Basics Webinar 4: Advanced Indexing, Text and Geospatial Indexes
Back to Basics Webinar 4: Advanced Indexing, Text and Geospatial Indexes
 
Building Apps with MongoDB
Building Apps with MongoDBBuilding Apps with MongoDB
Building Apps with MongoDB
 
Mongo db presentation
Mongo db presentationMongo db presentation
Mongo db presentation
 
Back to Basics Webinar 5: Introduction to the Aggregation Framework
Back to Basics Webinar 5: Introduction to the Aggregation FrameworkBack to Basics Webinar 5: Introduction to the Aggregation Framework
Back to Basics Webinar 5: Introduction to the Aggregation Framework
 
MongoDB 3.2 - Analytics
MongoDB 3.2  - AnalyticsMongoDB 3.2  - Analytics
MongoDB 3.2 - Analytics
 
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...
 
"Powerful Analysis with the Aggregation Pipeline (Tutorial)"
"Powerful Analysis with the Aggregation Pipeline (Tutorial)""Powerful Analysis with the Aggregation Pipeline (Tutorial)"
"Powerful Analysis with the Aggregation Pipeline (Tutorial)"
 
MongoDB - Back to Basics - La tua prima Applicazione
MongoDB - Back to Basics - La tua prima ApplicazioneMongoDB - Back to Basics - La tua prima Applicazione
MongoDB - Back to Basics - La tua prima Applicazione
 

Similaire à Webinar: General Technical Overview of MongoDB for Dev Teams

Mongodb intro
Mongodb introMongodb intro
Mongodb introchristkv
 
10gen Presents Schema Design and Data Modeling
10gen Presents Schema Design and Data Modeling10gen Presents Schema Design and Data Modeling
10gen Presents Schema Design and Data ModelingDATAVERSITY
 
Managing Social Content with MongoDB
Managing Social Content with MongoDBManaging Social Content with MongoDB
Managing Social Content with MongoDBMongoDB
 
Schema design
Schema designSchema design
Schema designchristkv
 
Aggregation Framework MongoDB Days Munich
Aggregation Framework MongoDB Days MunichAggregation Framework MongoDB Days Munich
Aggregation Framework MongoDB Days MunichNorberto Leite
 
Building your first app with MongoDB
Building your first app with MongoDBBuilding your first app with MongoDB
Building your first app with MongoDBNorberto Leite
 
MongoDB, PHP and the cloud - php cloud summit 2011
MongoDB, PHP and the cloud - php cloud summit 2011MongoDB, PHP and the cloud - php cloud summit 2011
MongoDB, PHP and the cloud - php cloud summit 2011Steven Francia
 
Building your first app with mongo db
Building your first app with mongo dbBuilding your first app with mongo db
Building your first app with mongo dbMongoDB
 
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling rogerbodamer
 
Webinar: Data Processing and Aggregation Options
Webinar: Data Processing and Aggregation OptionsWebinar: Data Processing and Aggregation Options
Webinar: Data Processing and Aggregation OptionsMongoDB
 
Starting with MongoDB
Starting with MongoDBStarting with MongoDB
Starting with MongoDBDoThinger
 
Marc s01 e02-crud-database
Marc s01 e02-crud-databaseMarc s01 e02-crud-database
Marc s01 e02-crud-databaseMongoDB
 
Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...
Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...
Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMongoDB
 
9b. Document-Oriented Databases lab
9b. Document-Oriented Databases lab9b. Document-Oriented Databases lab
9b. Document-Oriented Databases labFabio Fumarola
 
Analytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop ConnectorAnalytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop ConnectorHenrik Ingo
 
Building Your First MongoDB App
Building Your First MongoDB AppBuilding Your First MongoDB App
Building Your First MongoDB AppHenrik Ingo
 
MongoDB Evenings Dallas: What's the Scoop on MongoDB & Hadoop
MongoDB Evenings Dallas: What's the Scoop on MongoDB & HadoopMongoDB Evenings Dallas: What's the Scoop on MongoDB & Hadoop
MongoDB Evenings Dallas: What's the Scoop on MongoDB & HadoopMongoDB
 
Building web applications with mongo db presentation
Building web applications with mongo db presentationBuilding web applications with mongo db presentation
Building web applications with mongo db presentationMurat Çakal
 
Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDBDev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDBMongoDB
 

Similaire à Webinar: General Technical Overview of MongoDB for Dev Teams (20)

Mongodb intro
Mongodb introMongodb intro
Mongodb intro
 
10gen Presents Schema Design and Data Modeling
10gen Presents Schema Design and Data Modeling10gen Presents Schema Design and Data Modeling
10gen Presents Schema Design and Data Modeling
 
Managing Social Content with MongoDB
Managing Social Content with MongoDBManaging Social Content with MongoDB
Managing Social Content with MongoDB
 
Schema design
Schema designSchema design
Schema design
 
Aggregation Framework MongoDB Days Munich
Aggregation Framework MongoDB Days MunichAggregation Framework MongoDB Days Munich
Aggregation Framework MongoDB Days Munich
 
Building your first app with MongoDB
Building your first app with MongoDBBuilding your first app with MongoDB
Building your first app with MongoDB
 
MongoDB, PHP and the cloud - php cloud summit 2011
MongoDB, PHP and the cloud - php cloud summit 2011MongoDB, PHP and the cloud - php cloud summit 2011
MongoDB, PHP and the cloud - php cloud summit 2011
 
Building your first app with mongo db
Building your first app with mongo dbBuilding your first app with mongo db
Building your first app with mongo db
 
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling
 
Webinar: Data Processing and Aggregation Options
Webinar: Data Processing and Aggregation OptionsWebinar: Data Processing and Aggregation Options
Webinar: Data Processing and Aggregation Options
 
Starting with MongoDB
Starting with MongoDBStarting with MongoDB
Starting with MongoDB
 
Marc s01 e02-crud-database
Marc s01 e02-crud-databaseMarc s01 e02-crud-database
Marc s01 e02-crud-database
 
Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...
Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...
Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
9b. Document-Oriented Databases lab
9b. Document-Oriented Databases lab9b. Document-Oriented Databases lab
9b. Document-Oriented Databases lab
 
Analytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop ConnectorAnalytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop Connector
 
Building Your First MongoDB App
Building Your First MongoDB AppBuilding Your First MongoDB App
Building Your First MongoDB App
 
MongoDB Evenings Dallas: What's the Scoop on MongoDB & Hadoop
MongoDB Evenings Dallas: What's the Scoop on MongoDB & HadoopMongoDB Evenings Dallas: What's the Scoop on MongoDB & Hadoop
MongoDB Evenings Dallas: What's the Scoop on MongoDB & Hadoop
 
Building web applications with mongo db presentation
Building web applications with mongo db presentationBuilding web applications with mongo db presentation
Building web applications with mongo db presentation
 
Dev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDBDev Jumpstart: Build Your First App with MongoDB
Dev Jumpstart: Build Your First App with MongoDB
 

Plus de MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 

Plus de MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

Dernier

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Dernier (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Webinar: General Technical Overview of MongoDB for Dev Teams

  • 1. Senior Solutions Architect, 10gen Mark Helmstetter General Technical Overview of MongoDB for Dev Teams
  • 2. Agenda • A bit of history… • Introducing MongoDB • MongoDB CRUD Operations • Working with Indexes in MongoDB • Aggregation Framework • MongoDB Ecosystem
  • 3. A bit of history…
  • 4. RDBMS Strengths • Data stored is very compact • Rigid schemas have led to powerful query capabilities • Data is optimized for joins and storage • Robust ecosystem of tools, libraries, integrations • 40 years old!
  • 5.
  • 6. It hides what you’re really doing
  • 7. It makes development hard Relational Database Object Relational Mapping Application Code XML Config DB Schema
  • 8. What do they have in common?
  • 9. Enter “Big Data” • Gartner defines it with 3Vs • Volume – Vast amounts of data being collected • Variety – Evolving data – Uncontrolled formats, no single schema – Unknown at design time • Velocity – Inbound data speed – Fast read/write operations – Low latency
  • 10. Mapping Big Data to RDBMS • Difficult to store uncontrolled data formats • Scaling via big iron or custom data marts/partitioning schemes • Schema must be known at design time • Impedance mismatch with agile development and deployment techniques • Doesn‟t map well to native language constructs
  • 12. Goals • Scale horizontally over commodity systems • Incorporate what works for RDBMSs – Rich data models, ad-hoc queries, full indexes • Drop what doesn‟t work well – Complex schemas, multi-row transactions, complex joins • Do not homogenize APIs • Match agile development and deployment workflows
  • 13. Key Features • Data represented as documents (JSON) – Flexible-schema – Storage/wire format is BSON • Full CRUD support (Create, Read, Update, Delete) – Atomic in-place updates – Ad-hoc queries: Equality, RegEx, Ranges,Geospatial,Text • Secondary indexes • Replication – redundancy, failover • Sharding – partitioning for read/write scalability
  • 15. Document Oriented, Dynamic Schema name: “jeff”, eyes: “blue”, height: 72, boss: “ben”} {name: “brendan”, aliases: [“el diablo”]} name: “ben”, hat: ”yes”} {name: “matt”, pizza: “DiGiorno”, height: 72, boss: 555.555.1212} {name: “will”, eyes: “blue”, birthplace: “NY”, aliases: [“bill”, “la ciacco”], gender: ”???”, boss: ”ben”}
  • 16. MongoDB is full featured MongoDB { first_name: „Paul‟, surname: „Miller‟, city: „London‟, location: [45.123,47.232], cars: [ { model: „Bently‟, year: 1973, value: 100000, … }, { model: „Rolls Royce‟, year: 1965, value: 330000, … } } } Rich Queries • Find Paul’s cars • Find everybody who owns a car built between 1970 and 1980 Geospatial • Find all of the car owners in London Text Search • Find all the cars described as having leather seats Aggregation • What’s the average value of Paul’s car collection Map Reduce • What is the ownership pattern of colors by geography over time? (is purple trending up in China?)
  • 21. > use blog > var post = { author: "markh", date: new Date(), title: "My First Blog Post", body: "MongoDB is an open source document-oriented database system developed and supported by 10gen.", tags: ["MongoDB"] } > db.posts.insert(post) Create – insert()
  • 22. > var post = { "_id" : 1, "author" : "markh", "title" : "MetLife builds innovative customer service application using MongoDB", "body" : "MetLife built a working prototype in two weeks and was live in U.S. call centers in 90 days.", "date" : ISODate("2013-05-07T00:00:00.000Z"), "tags" : ["MongoDB", "Database", "Big Data"] } > db.posts.update({ _id:1 }, post, { upsert : true }) // upsert option with <query> argument on _id -- same as save() Upsert
  • 23. > db.posts.findOne() { "_id" : ObjectId("517ed472e14b748a44dc0549"), "author" : "markh", "date" : ISODate("2013-05-29T20:13:37.349Z"), "title" : "My First Blog Post", "body" : "MongoDB is an open source document-oriented database system developed and supported by 10gen.", "tags" : ["MongoDB"] } // _id is unique but can be anything you like Read – findOne()
  • 24. > db.posts.findOne({author:"markh"}) { "_id" : ObjectId("517ed472e14b748a44dc0549"), "author" : "markh", "date" : ISODate("2013-05-29T20:13:37.349Z"), "title" : "My First Blog Post", "body" : "MongoDB is an open source document-oriented database system developed and supported by 10gen.", "tags" : ["MongoDB"] } Read – findOne()
  • 25. > db.posts.find({author:"markh"}) { "_id" : ObjectId("517ed472e14b748a44dc0549"), "author" : "markh", "date" : ISODate("2013-05-29T20:13:37.349Z"), "title" : "My First Blog Post", "body" : "MongoDB is an open source document-oriented database system developed and supported by 10gen.", "tags" : ["MongoDB"] } … Read – find()
  • 26. > db.posts.find( { author:"markh" } , { _id:0, author:1 } ) { "author" : "markh" } Projections
  • 27. // Ranges: $lt, $lte, $gt, $gte > db.posts.find( { author : "markh", date : { $gte : ISODate("2013-01-01T00:00:00.000Z"), $lt : ISODate("2013-05-10T02:50:27.874Z") } }) { "title" : "MetLife builds innovative customer service application using MongoDB", "date" : ISODate("2013-05-07T00:00:00Z") } Range Query Operators
  • 28. // Set: $in, $all, $nin > db.posts.find( { author : "markh", tags : { $all : [ "MongoDB", "Database", "Big Data" ]} }, { title:1 }) { "_id" : 1, "title" : "MetLife builds innovative customer service application using MongoDB" } Set Query Operators
  • 29. // Logical: $or, $and, $not, $nor > db.posts.find( { author : "markh", $or : [ { title : /first/i }, { body : /prototype/i } ] } ).count() 2 Logical Query Operators
  • 30. > var post = { author: "markh", date : ISODate("2013-05-29T20:13:37.349Z"), title: "MongoDB is the #1 NoSQL Database", body: "MongoDB is an open source document-oriented database system developed and supported by 10gen.", tags: ["MongoDB"] } > db.posts.update( { _id:ObjectId("517ed472e14b748a44dc0549") }, post ) Update
  • 31. > db.posts.update( { _id: 1}, { $set: {slug:"mongodb"} } ) > db.posts.update( { _id: 1 }, { $unset: {slug:1} } ) > db.posts.update( { _id: 1 }, { $inc: {revision:1} } ) Update Operators
  • 32. // Array Update Operators // $set, $unset // $push, $pop, $pull, $pullAll, $addToSet > comment = { userid: "fred", date: new Date(), text: "I totally agree!" } > db.posts.update( { _id: 1 }, { $push: {comments: comment} }); Array Update Operators
  • 33. book = { _id: 123456789, title: "MongoDB: The Definitive Guide", available: 1, checkout: [ { by: "joe", date: ISODate("2012-10-15") } ] } > db.books.findAndModify ( { query: { _id: 123456789, available: { $gt: 0 } }, update: {$inc: { available: -1 }, $push: { checkout: { by: "abc", date: new Date() } } } } ) findAndModify
  • 34. // Delete EVERYTHING in the collection > db.posts.remove() // Delete based on query criteria > db.posts.remove( { _id:3 } ) > db.posts.remove( { author:"john" } ) // Only delete one document using "justOne" option > db.posts.remove( { author:"john" }, true ) Delete
  • 35. Working with Indexes in MongoDB
  • 36. Indexes are the single biggest tunable performance factor in MongoDB Absent or suboptimal indexes are the most common avoidable MongoDB performance problem.
  • 37. // Default (unique) index on _id // create an ascending index on “author” > db.posts.ensureIndex({author:1}) > db.posts.find({author:"markh"}) Indexing a single value
  • 38. // Arrays of values (multikey indexes) tags: [“MongoDB”, “Database”, “NoSQL”] > db.posts.ensureIndex({ tags: 1 }) > db.posts.find({tags: "MongoDB"}) Indexing Array Elements
  • 39. // Multiple fields (compound key indexes) > db.posts.ensureIndex({ author: 1, date: -1 }) > db.posts.find( { author : "markh", date : { $gte : ISODate("2013-01-01T00:00:00.000Z"), $lt : ISODate("2013-05-10T02:50:27.874Z") } }) Compound Indexes
  • 40. // Subdocuments { … comments: [ { userid: "fred", date: new Date(), text: "I totally agree!" } ] } db.posts.ensureIndex( { "comments.userid": 1 } ) Indexing Subdocuments
  • 41. > db.pubs.insert( [ {name: "Ned Devine's", loc : { type : "Point", coordinates : [ -77.410018, 38.9516 ] } }, {name: "O'Sullivan's", loc : { type : "Point", coordinates : [ -77.386329, 38.970754 ] } }, {name: "Old Brogue", loc : { type : "Point", coordinates : [ -77.29067, 38.998542 ] } }, {name: "Finnegan's", loc : { type : "Point", coordinates : [ -77.395275, 38.952734 ] } } ]) > db.pubs.ensureIndex( { loc : "2dsphere" } Geospatial Indexes
  • 42. > db.pubs.find( { loc : { $near : { $geometry : { type : "Point" , coordinates: [ -77.386164, 38.971088 ] } }, $maxDistance : 500 } } ) { "name" : "O'Sullivan's", "loc" : { "type" : "Point", "coordinates" : [ -77.386329, 38.970754 ] } } Geospatial Indexes
  • 43. > db.pubs.insert( [ { description: "Irish Pub, serving great Irish beers", menuItems: ["Bangers & Mash", "Fish & Chips"] }, { description:"Sports bar and restaurant", menuItems: [ "Burgers", "Wings", "Pizza"] }, { description:"Beer joint", menuItems: [ "Belgian Beers", "Micro Brews", "Cask Ales"] } ]) > db.pubs.ensureIndex( { description: "text", menuItems: "text" } ) Text Indexes
  • 44. > db.pubs.runCommand( "text", { search: "beer", project: { _id: 0 } } ).results [ {"score" : 1.5, "obj" : { "description" : "Beer joint", "menuItems" : ["Belgian Beers", "Micro Brews", "Cask Ales"] } }, {"score" : 0.5833333333333334, "obj" : { "description" : "Irish Pub, serving great Irish beers", "menuItems" : ["Bangers & Mash", "Fish & Chips", "Sheperd's Pie"] } } ] Text Indexes
  • 45. // username in users collection must be unique db.users.ensureIndex( { username: 1 }, { unique: true } ) Uniqueness Constraints
  • 46. // Only documents with comments.userid will be indexed db.posts.ensureIndex( { "comments.userid": 1 } , { sparse: true } ) // Allow multiple documents to not have a sku field db.products.ensureIndex( {sku: 1}, {unique: true, sparse: true} ) Sparse Indexes
  • 48. Pipeline • Process a stream of documents – Original input is a collection – Final output is a result document • Series of operators – Filter or transform data – Input/output chain ps ax | grep mongod | head -n 1
  • 49. Pipeline Operators • $match • $project • $group • $unwind • $sort • $limit • $skip
  • 50. Aggregation Framework SQL Statement MongoDB Aggregation Statment SELECT COUNT(*) AS count FROM orders db.orders.aggregate( [ { $group: { _id: null, count: { $sum: 1 } } } ] ) SELECT SUM(price) AS total FROM orders db.orders.aggregate( [ { $group: { _id: null, total: { $sum: "$price" } } } ] ) SELECT cust_id, SUM(price) AS total FROM orders GROUP BY cust_id db.orders.aggregate( [ { $group: { _id: "$cust_id", total: { $sum: "$price" } } } ] ) SELECT cust_id, SUM(price) as total FROM orders WHERE status = 'A' GROUP BY cust_id db.orders.aggregate( [ { $match: { status: 'A' } }, { $group: { _id: "$cust_id", total: { $sum: "$price" } } } ] )
  • 51. { title: "The Great Gatsby", pages: 218, language: "English" } { title: "War and Peace", pages: 1440, language: "Russian" } { title: "Atlas Shrugged", pages: 1088, language: "English" } Matching Field Values { $match: { language: "Russian" }} { title: "War and Peace", pages: 1440, language: "Russian" }
  • 52. { title: "The Great Gatsby", pages: 218, language: "English" } { title: "War and Peace", pages: 1440, language: "Russian" } { title: "Atlas Shrugged", pages: 1088, language: "English" } Matching with Query Operators { $match: { pages: { $gt: 1000 } }} { title: "War and Peace", pages: 1440, language: "Russian" } { title: "Atlas Shrugged", pages: 1088, language: "English" }
  • 53. { title: "The Great Gatsby", pages: 218, language: "English" } { title: "War and Peace", pages: 1440, language: "Russian" } { title: "Atlas Shrugged", pages: 1088, language: "English" } Calculating an Average { $group: { _id: "$language", avgPages: { $avg: "$pages" } }} { _id: "Russian", avgPages: 1440 } { _id: "English", avgPages: 653 }
  • 54. { title: "The Great Gatsby", pages: 218, language: "English" } { title: "War and Peace", pages: 1440, language: "Russian” } { title: "Atlas Shrugged", pages: 1088, language: "English" } Summating Fields and Counting { $group: { _id: "$language", numTitles: { $sum: 1 }, sumPages: { $sum: "$pages" } }} { _id: "Russian", numTitles: 1, sumPages: 1440 } { _id: "English", numTitles: 2, sumPages: 1306 }
  • 56. MongoDB Ecosystem Drivers Libraries / Framework s Applications Monitoring Tools Admin Tools ETL Tools Deployment Tools IDEs Communit y http://docs.mongodb.org/ecosystem/
  • 57. Global Community 4,000,000+ MongoDB Downloads 50,000+ Online Education Registrants 15,000+ MongoDB User Group Members 14,000+ MongoDB Monitoring Service (MMS) Users 10,000+ Annual MongoDB DaysAttendees
  • 58. MongoDB is the leading NoSQL Database
  • 60. Use Cases Content Management Operational Intelligence High Volume Data Feeds E-Commerce User Data Management http://www.10gen.com/customers
  • 64. Drivers Community Supported Drivers Drivers Drivers for most popular programming languages and frameworks Java Python Perl Ruby Haskell JavaScript PowerShell Prolog Racket
  • 65. • CakePHP • CodeIgniter • Fat-Free • Lithium • Symfony 2 • TechMVC • Vork • TURBOPY • Grails • Pyramid • Django Ecosystem – Web Application Frameworks
  • 66. • Morphia • Doctrine • Kohana • Yii • MongoRecord • ActiveMongo • Comfi • Mandango • MongoDB PHP ODM • Mongoose • Spring Data MongoDB • Hibernate OGM • MongoEngine • Salat Ecosystem – ODM
  • 67. • Drupal • Locomotive • MongoPress • Calipso • Frameworks – Web frameworks with CMS capabilitites – v7files / Vermongo Ecosystem – CMS
  • 68. • MMS • Munin MongoDB Plugin • Nagios • Ganglia • Zabbix • Scout • Server Density Ecosystem – Monitoring Tools
  • 69. • Edda • Fang of Mongo • Umongo • MongoExplorer • MongoHub • MongoVision • MongoVUE • mViewer • Opricot • PHPMoAdmin • RockMongo • Genghis • Meclipse • Humongous • MongoDB ODA plugin for BIRT • Monad Management for MongoDB Ecosystem – Admin UIs
  • 70. • HTTP Console / Simple REST Interface (built-in) • Sleepy Mongoose (Python) • DrowsyDromedary (Ruby) • MongoDB Rest (Node.js) • MongoDB Java REST Server Ecosystem – HTTP/REST Interfaces
  • 71. • GridFS – Thundergrid – Mongofilesystem • Deployment / Mangagement – puppet-mongodb – chef-mongodb • MongoDB Pagination • Morph • Mongodloid • SimpleMongoPhp • Mongo-Queue-PHP Ecosystem – Miscelenia
  • 72. • MongoDB is a full-featured, general purpose database • Flexible document data model provides – Greater flexibility – Greater agility • MongoDB is built for "Big Data" • Healthy, strong, and growing ecosystem / community Conclusion
  • 73. • Presentations / Webinars – http://www.10gen.com/presentations • Customer Success Stories – http://www.10gen.com/customers • MongoDB Documentation – http://docs.mongodb.org/ • Community – https://groups.google.com/group/mongodb-user – http://stackoverflow.com/questions/tagged/mongodb Resources
  • 75. Senior Solutions Architect, 10gen Mark Helmstetter Thank You @helmstetter

Notes de l'éditeur

  1. Magento ER Diagramhttp://www.magento-exchange.com/magento-database/magento-1-4-database-er-diagram/
  2. BSON types:stringinteger (32- or 64-bit)double (64-bit IEEE 754 floating point number)date (integer number of milliseconds since the Unix epoch)byte array (binary data)boolean (true and false)null
  3. BSON types:stringinteger (32- or 64-bit)double (64-bit IEEE 754 floating point number)date (integer number of milliseconds since the Unix epoch)byte array (binary data)boolean (true and false)null
  4. These are called targeted modifications
  5. So it’s imperative we understand them
  6. Indexes can be costly if you have too manysoooo....
  7. GeoJSON is an open format (based on the JSON standard) for encoding a variety of geographic data structures. MongoDB supports the following GeoJSON objects:PointLineStringPolygon
  8. $geoWithin - GeoJSON Objects Bounded by a Polygon$geoIntersects operator queries for locations that intersect a specified GeoJSON object.
  9. unique applies a uniqueness constant on duplicate values.dropDups will force the server to create a unique index by only keeping the first document found in natural order with a value and dropping all other documents with that value.dropDups will likely result in data loss!!!TODO: Maybe add a red exclamation point for dropDups.
  10. MongoDB doesn&apos;t enforce a schema – documents are not required to have the same fields.Sparse indexes only contain entries for documents that have the indexed field.Without sparse, documents without field &apos;a&apos; have a null entry in the index for that field.With sparse a unique constraint can be applied to a field not shared by all documents. Otherwise multiple &apos;null&apos; values violate the unique constraint.XXX: Is there a visual that makes sense here?
  11. MongoDB uses BSON as the data storage and network transfer format for “documents”.