SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

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

Mehr von 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...
 

Kürzlich hochgeladen

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 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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 MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
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.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Kürzlich hochgeladen (20)

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 Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 

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

Hinweis der Redaktion

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