SlideShare a Scribd company logo
1 of 54
1 6 J A N U A RY, 2 0 1 8 | H I LT O N
# M D B l o c a l
Eliot Horowitz
CTO & Co-Founder
@eliothorowitz
# M D B l o c a l
MongoDB Server 3.6
# M D B l o c a l
$lookup
$lookup in 3.6
orders:
{
...
line_items : [
{ id: 123,
title : "USB Battery",
price: 15.0 },
{ id: 512,
title : "Hip T-shirt",
price : 45.0 }
],
...
}
$lookup in 3.6
orders:
{
...
line_items : [
{ id: 123,
title : "USB Battery",
price: 15.0 },
{ id: 512,
title : "Hip T-shirt",
price : 45.0 }
],
...
}
db.orders.aggregate([
{$unwind : … },
{$lookup:{
from: "reviews",
let: {p_id:"$line_items.id"},
pipeline: [
{$match: {p_id:{$expr:"$$p_id"}}},
{$group: {
_id : null,
rating:{$avg:"$rating"}
}} ],
as: "avgRating" },
{ … }
])
# M D B l o c a l
Arrays
Arrays
orders:
{
_id: 5,
line_items : [
{ id: 123,
title : "USB Battery",
price: 15.0 },
{ id: 512,
title : "Hip T-shirt",
price : 45.0 }
],
...
}
Updating Arrays: All Elements
orders:
{
_id: 5,
line_items : [
{ id: 123,
title : "USB Battery",
price: 15.0 },
{ id: 512,
title : "Hip T-shirt",
price : 45.0 }
],
...
}
db.orders.update(
{ _id: 5 },
{ $mul: {
"line_items.$[].price":
0.8
}
}
)
Updating Arrays: Some Elements
orders:
{
_id: 5,
line_items : [
{ id: 123,
title : "USB Battery",
price: 15.0 },
{ id: 512,
title : "Hip T-shirt",
price : 45.0 }
],
...
}
Updating Arrays: Some Elements
orders:
{
_id: 5,
line_items : [
{ id: 123,
title : "USB Battery",
price: 15.0 },
shipped: true
{ id: 512,
title : "Hip T-shirt",
price : 45.0,
shipped: false }
],
}
db.orders.update(
{ _id: 5 },
{ $mul: {
"line_items.$[li].price":
0.8}},
{arrayFilters:[
{"li.shipped":{$ne:true}}
]}
)
Updating Arrays: Nested
{ "_id" : 5,
"line_items" : [
{ "id": 123,
"title": "USB Battery",
"price": 15.0,
"notify_when_ship": [{"name": "eliot", "phone": "123-456-7890"}],
"shipped": true },
{ "id": 512,
"title": "Hip T-shirt",
"price": 45.0,
"shipped": false }
]
}
# M D B l o c a l
Fully Expressive
Array Updates
# M D B l o c a l
JSON Schema
JSON Schema in Action
$jsonSchema: {
properties: {
line_items: {
type: "array",
items: {
properties: {
title: {type: "string"},
price: {type: "number", minimum: 0.0} },
required: ["_id", "title", "price"],
additionalProperties: false }}},
required: ["line_items"]
}
# M D B l o c a l
Retryable Writes
Retryable Writes in 3.6
# Specify connection string with retryable writes enabled.
uri = "mongodb://example.com:27017/?retryWrites=true"
# Connect and issue writes as usual
client = MongoClient(uri)
database = client.database
collection = database.collection
result = collection.update_one({'_id': 1},
{'$inc': {'n': 1}})
# M D B l o c a l
Local Host Only
By Default
# M D B l o c a l
Change Streams
Change Streams in Action
# Subscribe to change notifications in a collection.
cursor = client.my_db.my_collection.watch([
{'$match': {'operationType':
{'$in': ['insert', 'replace']}}},
{'$match': {'newDocument.n': {'$gte': 1}}}
])
# Loops forever.
for change in cursor:
print(change['newDocument'])
# M D B l o c a l
Introduction to Change Streams
WHERE
Shard 1
WHEN
15:00 – 15:40
ALY CABRAL
Product Manager,
Core Server
# M D B l o c a l
MongoDB Server 3.6
# M D B l o c a l
ALY CABRAL
Product Manager,
Core Server
How to Leverage
What's New in MongoDB 3.6
WHERE
Shard 1
WHEN
10:40 – 11:20
# M D B l o c a l
Business Intelligence
Property Value Accuracy
Mean of x 9 exact
Sample variance of x 11 exact
Mean of y 7.50 to 2 decimal places
Sample variance of y 4.125 plus/minus 0.003
Correlation between x and y 0.816 to 3 decimal places
Linear regression line y = 3.00 + 0.500x
to 2 and 3 decimal places,
respectively
Coefficient of determination of the linear regression 0.67 to 2 decimal places
Anscombe’s Quartet
Four datasets, all with the same…
1 Picture > 1.0E3 Queries
12
10
8
6
4
124 6 6 10 14 16 18
Y1
X1
12
10
8
6
4
124 6 6 10 14 16 18
Y3
X3
12
10
8
6
4
124 6 6 10 14 16 18
Y2
X2
12
10
8
6
4
124 6 6 10 14 16 18
Y4
X4
# M D B l o c a l
BI Connector
Built with MongoDB
# M D B l o c a l
BI Connector 2.0
Polymorphic Documents
{
_id: 1,
name: "Hip T-shirt",
price: 45.0,
size: "M",
description: "The
perfect balance of obscure
and iconic."
}
{
_id: 2,
name: "USB Battery",
price: 15.0,
mAh: 6000,
description: "Conferences
are phone-killers. Bring
backup."
}
Arrays
orders:
{
...
line_items : [
{ title : "USB Battery",
price: 15.0 },
{ title : "Hip T-shirt",
price : 45.0 }
],
...
},
...
1: Most popular items
USB Battery : 5
T-shirt : 4
etc.
2: Histogram of order price
< $10 : 20%
$10 - $29 : 15%
$30 - $99 : 40%
> $100 : 5%
Built with
MongoDB
Charts
MongoDB Charts: Dashboards
# M D B l o c a l
Demo: MongoDB Charts
ANNA HERLIHY
Software
Engineer,
Compass
# M D B l o c a l
MongoDB Charts
Coming Soon
# M D B l o c a l
MongoDB Atlas
# M D B l o c a l
• Reliability
• Security
• Ease
• Elasticity
Why Atlas
# M D B l o c a l
• Free tier
• Live migration service
• Data browser
• Real-time performance
viewer
• Queryable backups
• Performance Advisor
• M2
• Pause Cluster
• Atlas BI Connector
• Datadog integration
Atlas Since Launch
# M D B l o c a l
Demo: MongoDB Atlas
TOMER YAKIR
Senior Technical
Services Engineer
# M D B l o c a l
• Full CRUD support
• Charts integration
• Auditing
• LDAP authentication
• KMIP integration
• Cross cloud
Atlas: Coming Soon
# M D B l o c a l
MongoDB Stitch
2007 2010
Distributed
Systems
2012
Aggregation
Framework
2013
Mgt.
& Security
2014
WiredTiger
2015
Doc Validation,
JOINs, Compass,
BI Connector
2016
MongoDB
Atlas
Core Run AnywhereEnterprise-Ready
Document
Model
# M D B l o c a l
• Web as 1st-class UI
• Mobile
• IoT
What’s Changed Since 20047
Services
Amazon
SES
A Modern App Needs…
A way to stitch
services together
Security, access control
logic, and validation
An API to do CRUD
The Hard Way
Lots of boilerplate DIY Security
& Privacy
Custom Node/
Python/Rails app
The Current MBAAS/PAAS/Serverless Way
Locked inCan’t get at data Can’t use other services
The Stitch Way
Configuration based
authentication,
privacy, and security
Service
composition
Anywhere
you want
REST API for
MongoDB
Stitch Architecture
Stitch
> db.users.find Amazon
S3
MongoDB
AtlasBI Tools
Shell Access
# M D B l o c a l
Demo: MongoDB Stitch
ELIOT HOROWITZ
(That’s me!)
CTO & Co-Founder
# M D B l o c a l
MongoDB Stitch
Introduction
DREW DI PALMA
Product Manager, Cloud
WHERE: Shard 1
WHEN: 15:55 – 15:40
Introduction to
the Stitch SDK
ADAYA COHEN
Zemingo
WHERE: Shard 2
WHEN: 11:35 – 12:15
# M D B l o c a l
MongoDB Stitch
Today:
- In beta
- On Atlas
Coming Soon:
- GA
- In Cloud/On Premises
1 6 J A N U A RY, 2 0 1 8 | H I LT O N
# M D B l o c a l
Eliot Horowitz
CTO & Co-Founder
@eliothorowitz

More Related Content

Similar to SH 1 - SES 2 part 2 - Tel Aviv MDBlocal - Eliot Keynote.pptx

Keynote - Speaker: Grigori Melnik
Keynote - Speaker: Grigori Melnik Keynote - Speaker: Grigori Melnik
Keynote - Speaker: Grigori Melnik MongoDB
 
How to leverage what's new in MongoDB 3.6
How to leverage what's new in MongoDB 3.6How to leverage what's new in MongoDB 3.6
How to leverage what's new in MongoDB 3.6Maxime Beugnet
 
MongoDB Stich Overview
MongoDB Stich OverviewMongoDB Stich Overview
MongoDB Stich OverviewMongoDB
 
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDBMongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDBMongoDB
 
Online | MongoDB Atlas on GCP Workshop
Online | MongoDB Atlas on GCP Workshop Online | MongoDB Atlas on GCP Workshop
Online | MongoDB Atlas on GCP Workshop Natasha Wilson
 
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptx
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptxSH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptx
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptxMongoDB
 
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptx
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptxSH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptx
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptxMongoDB
 
MongoDB World 2019: Building an Efficient and Performant Data Model: Real Wor...
MongoDB World 2019: Building an Efficient and Performant Data Model: Real Wor...MongoDB World 2019: Building an Efficient and Performant Data Model: Real Wor...
MongoDB World 2019: Building an Efficient and Performant Data Model: Real Wor...MongoDB
 
Engineering Highly Maintainable Code: Maintain or Innovate
Engineering Highly Maintainable Code: Maintain or InnovateEngineering Highly Maintainable Code: Maintain or Innovate
Engineering Highly Maintainable Code: Maintain or InnovateSteve Andrews
 
Polyglot Persistence & Multi Model-Databases at JMaghreb3.0
Polyglot Persistence & Multi Model-Databases at JMaghreb3.0Polyglot Persistence & Multi Model-Databases at JMaghreb3.0
Polyglot Persistence & Multi Model-Databases at JMaghreb3.0ArangoDB Database
 
SH 1 - SES 8 - Stitch_Overview_TLV.pptx
SH 1 - SES 8 - Stitch_Overview_TLV.pptxSH 1 - SES 8 - Stitch_Overview_TLV.pptx
SH 1 - SES 8 - Stitch_Overview_TLV.pptxMongoDB
 
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)Polyglot Persistence & Multi-Model Databases (FullStack Toronto)
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)ArangoDB Database
 
Multi model-databases 29-10-2014 LJC
Multi model-databases 29-10-2014 LJCMulti model-databases 29-10-2014 LJC
Multi model-databases 29-10-2014 LJCArangoDB Database
 
Data Analytics with MongoDB - Jane Fine
Data Analytics with MongoDB - Jane FineData Analytics with MongoDB - Jane Fine
Data Analytics with MongoDB - Jane FineMongoDB
 
[MongoDB.local Bengaluru 2018] Just in Time Validation with JSON Schema
[MongoDB.local Bengaluru 2018] Just in Time Validation with JSON Schema[MongoDB.local Bengaluru 2018] Just in Time Validation with JSON Schema
[MongoDB.local Bengaluru 2018] Just in Time Validation with JSON SchemaMongoDB
 
Introducing N1QL: New SQL Based Query Language for JSON
Introducing N1QL: New SQL Based Query Language for JSONIntroducing N1QL: New SQL Based Query Language for JSON
Introducing N1QL: New SQL Based Query Language for JSONKeshav Murthy
 
Building your First MEAN App
Building your First MEAN AppBuilding your First MEAN App
Building your First MEAN AppMongoDB
 
MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: Tutorial
MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: TutorialMongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: Tutorial
MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: TutorialMongoDB
 
Eagle6 mongo dc revised
Eagle6 mongo dc revisedEagle6 mongo dc revised
Eagle6 mongo dc revisedMongoDB
 

Similar to SH 1 - SES 2 part 2 - Tel Aviv MDBlocal - Eliot Keynote.pptx (20)

Keynote - Speaker: Grigori Melnik
Keynote - Speaker: Grigori Melnik Keynote - Speaker: Grigori Melnik
Keynote - Speaker: Grigori Melnik
 
How to leverage what's new in MongoDB 3.6
How to leverage what's new in MongoDB 3.6How to leverage what's new in MongoDB 3.6
How to leverage what's new in MongoDB 3.6
 
MongoDB Meetup
MongoDB MeetupMongoDB Meetup
MongoDB Meetup
 
MongoDB Stich Overview
MongoDB Stich OverviewMongoDB Stich Overview
MongoDB Stich Overview
 
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDBMongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
 
Online | MongoDB Atlas on GCP Workshop
Online | MongoDB Atlas on GCP Workshop Online | MongoDB Atlas on GCP Workshop
Online | MongoDB Atlas on GCP Workshop
 
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptx
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptxSH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptx
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptx
 
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptx
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptxSH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptx
SH 1 - SES 3 - 3.6-Overview-Tel-Aviv.pptx
 
MongoDB World 2019: Building an Efficient and Performant Data Model: Real Wor...
MongoDB World 2019: Building an Efficient and Performant Data Model: Real Wor...MongoDB World 2019: Building an Efficient and Performant Data Model: Real Wor...
MongoDB World 2019: Building an Efficient and Performant Data Model: Real Wor...
 
Engineering Highly Maintainable Code: Maintain or Innovate
Engineering Highly Maintainable Code: Maintain or InnovateEngineering Highly Maintainable Code: Maintain or Innovate
Engineering Highly Maintainable Code: Maintain or Innovate
 
Polyglot Persistence & Multi Model-Databases at JMaghreb3.0
Polyglot Persistence & Multi Model-Databases at JMaghreb3.0Polyglot Persistence & Multi Model-Databases at JMaghreb3.0
Polyglot Persistence & Multi Model-Databases at JMaghreb3.0
 
SH 1 - SES 8 - Stitch_Overview_TLV.pptx
SH 1 - SES 8 - Stitch_Overview_TLV.pptxSH 1 - SES 8 - Stitch_Overview_TLV.pptx
SH 1 - SES 8 - Stitch_Overview_TLV.pptx
 
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)Polyglot Persistence & Multi-Model Databases (FullStack Toronto)
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)
 
Multi model-databases 29-10-2014 LJC
Multi model-databases 29-10-2014 LJCMulti model-databases 29-10-2014 LJC
Multi model-databases 29-10-2014 LJC
 
Data Analytics with MongoDB - Jane Fine
Data Analytics with MongoDB - Jane FineData Analytics with MongoDB - Jane Fine
Data Analytics with MongoDB - Jane Fine
 
[MongoDB.local Bengaluru 2018] Just in Time Validation with JSON Schema
[MongoDB.local Bengaluru 2018] Just in Time Validation with JSON Schema[MongoDB.local Bengaluru 2018] Just in Time Validation with JSON Schema
[MongoDB.local Bengaluru 2018] Just in Time Validation with JSON Schema
 
Introducing N1QL: New SQL Based Query Language for JSON
Introducing N1QL: New SQL Based Query Language for JSONIntroducing N1QL: New SQL Based Query Language for JSON
Introducing N1QL: New SQL Based Query Language for JSON
 
Building your First MEAN App
Building your First MEAN AppBuilding your First MEAN App
Building your First MEAN App
 
MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: Tutorial
MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: TutorialMongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: Tutorial
MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: Tutorial
 
Eagle6 mongo dc revised
Eagle6 mongo dc revisedEagle6 mongo dc revised
Eagle6 mongo dc revised
 

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

More from 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...
 

SH 1 - SES 2 part 2 - Tel Aviv MDBlocal - Eliot Keynote.pptx

  • 1. 1 6 J A N U A RY, 2 0 1 8 | H I LT O N # M D B l o c a l Eliot Horowitz CTO & Co-Founder @eliothorowitz
  • 2. # M D B l o c a l MongoDB Server 3.6
  • 3.
  • 4. # M D B l o c a l $lookup
  • 5. $lookup in 3.6 orders: { ... line_items : [ { id: 123, title : "USB Battery", price: 15.0 }, { id: 512, title : "Hip T-shirt", price : 45.0 } ], ... }
  • 6. $lookup in 3.6 orders: { ... line_items : [ { id: 123, title : "USB Battery", price: 15.0 }, { id: 512, title : "Hip T-shirt", price : 45.0 } ], ... } db.orders.aggregate([ {$unwind : … }, {$lookup:{ from: "reviews", let: {p_id:"$line_items.id"}, pipeline: [ {$match: {p_id:{$expr:"$$p_id"}}}, {$group: { _id : null, rating:{$avg:"$rating"} }} ], as: "avgRating" }, { … } ])
  • 7. # M D B l o c a l Arrays
  • 8. Arrays orders: { _id: 5, line_items : [ { id: 123, title : "USB Battery", price: 15.0 }, { id: 512, title : "Hip T-shirt", price : 45.0 } ], ... }
  • 9. Updating Arrays: All Elements orders: { _id: 5, line_items : [ { id: 123, title : "USB Battery", price: 15.0 }, { id: 512, title : "Hip T-shirt", price : 45.0 } ], ... } db.orders.update( { _id: 5 }, { $mul: { "line_items.$[].price": 0.8 } } )
  • 10. Updating Arrays: Some Elements orders: { _id: 5, line_items : [ { id: 123, title : "USB Battery", price: 15.0 }, { id: 512, title : "Hip T-shirt", price : 45.0 } ], ... }
  • 11. Updating Arrays: Some Elements orders: { _id: 5, line_items : [ { id: 123, title : "USB Battery", price: 15.0 }, shipped: true { id: 512, title : "Hip T-shirt", price : 45.0, shipped: false } ], } db.orders.update( { _id: 5 }, { $mul: { "line_items.$[li].price": 0.8}}, {arrayFilters:[ {"li.shipped":{$ne:true}} ]} )
  • 12. Updating Arrays: Nested { "_id" : 5, "line_items" : [ { "id": 123, "title": "USB Battery", "price": 15.0, "notify_when_ship": [{"name": "eliot", "phone": "123-456-7890"}], "shipped": true }, { "id": 512, "title": "Hip T-shirt", "price": 45.0, "shipped": false } ] }
  • 13. # M D B l o c a l Fully Expressive Array Updates
  • 14. # M D B l o c a l JSON Schema
  • 15. JSON Schema in Action $jsonSchema: { properties: { line_items: { type: "array", items: { properties: { title: {type: "string"}, price: {type: "number", minimum: 0.0} }, required: ["_id", "title", "price"], additionalProperties: false }}}, required: ["line_items"] }
  • 16. # M D B l o c a l Retryable Writes
  • 17. Retryable Writes in 3.6 # Specify connection string with retryable writes enabled. uri = "mongodb://example.com:27017/?retryWrites=true" # Connect and issue writes as usual client = MongoClient(uri) database = client.database collection = database.collection result = collection.update_one({'_id': 1}, {'$inc': {'n': 1}})
  • 18. # M D B l o c a l Local Host Only By Default
  • 19. # M D B l o c a l Change Streams
  • 20. Change Streams in Action # Subscribe to change notifications in a collection. cursor = client.my_db.my_collection.watch([ {'$match': {'operationType': {'$in': ['insert', 'replace']}}}, {'$match': {'newDocument.n': {'$gte': 1}}} ]) # Loops forever. for change in cursor: print(change['newDocument'])
  • 21. # M D B l o c a l Introduction to Change Streams WHERE Shard 1 WHEN 15:00 – 15:40 ALY CABRAL Product Manager, Core Server
  • 22. # M D B l o c a l MongoDB Server 3.6
  • 23. # M D B l o c a l ALY CABRAL Product Manager, Core Server How to Leverage What's New in MongoDB 3.6 WHERE Shard 1 WHEN 10:40 – 11:20
  • 24. # M D B l o c a l Business Intelligence
  • 25. Property Value Accuracy Mean of x 9 exact Sample variance of x 11 exact Mean of y 7.50 to 2 decimal places Sample variance of y 4.125 plus/minus 0.003 Correlation between x and y 0.816 to 3 decimal places Linear regression line y = 3.00 + 0.500x to 2 and 3 decimal places, respectively Coefficient of determination of the linear regression 0.67 to 2 decimal places Anscombe’s Quartet Four datasets, all with the same…
  • 26. 1 Picture > 1.0E3 Queries 12 10 8 6 4 124 6 6 10 14 16 18 Y1 X1 12 10 8 6 4 124 6 6 10 14 16 18 Y3 X3 12 10 8 6 4 124 6 6 10 14 16 18 Y2 X2 12 10 8 6 4 124 6 6 10 14 16 18 Y4 X4
  • 27. # M D B l o c a l BI Connector
  • 29. # M D B l o c a l BI Connector 2.0
  • 30. Polymorphic Documents { _id: 1, name: "Hip T-shirt", price: 45.0, size: "M", description: "The perfect balance of obscure and iconic." } { _id: 2, name: "USB Battery", price: 15.0, mAh: 6000, description: "Conferences are phone-killers. Bring backup." }
  • 31. Arrays orders: { ... line_items : [ { title : "USB Battery", price: 15.0 }, { title : "Hip T-shirt", price : 45.0 } ], ... }, ... 1: Most popular items USB Battery : 5 T-shirt : 4 etc. 2: Histogram of order price < $10 : 20% $10 - $29 : 15% $30 - $99 : 40% > $100 : 5%
  • 34. # M D B l o c a l Demo: MongoDB Charts ANNA HERLIHY Software Engineer, Compass
  • 35. # M D B l o c a l MongoDB Charts Coming Soon
  • 36. # M D B l o c a l MongoDB Atlas
  • 37. # M D B l o c a l • Reliability • Security • Ease • Elasticity Why Atlas
  • 38. # M D B l o c a l • Free tier • Live migration service • Data browser • Real-time performance viewer • Queryable backups • Performance Advisor • M2 • Pause Cluster • Atlas BI Connector • Datadog integration Atlas Since Launch
  • 39.
  • 40. # M D B l o c a l Demo: MongoDB Atlas TOMER YAKIR Senior Technical Services Engineer
  • 41. # M D B l o c a l • Full CRUD support • Charts integration • Auditing • LDAP authentication • KMIP integration • Cross cloud Atlas: Coming Soon
  • 42. # M D B l o c a l MongoDB Stitch
  • 43. 2007 2010 Distributed Systems 2012 Aggregation Framework 2013 Mgt. & Security 2014 WiredTiger 2015 Doc Validation, JOINs, Compass, BI Connector 2016 MongoDB Atlas Core Run AnywhereEnterprise-Ready Document Model
  • 44. # M D B l o c a l • Web as 1st-class UI • Mobile • IoT What’s Changed Since 20047
  • 46. A Modern App Needs… A way to stitch services together Security, access control logic, and validation An API to do CRUD
  • 47. The Hard Way Lots of boilerplate DIY Security & Privacy Custom Node/ Python/Rails app
  • 48. The Current MBAAS/PAAS/Serverless Way Locked inCan’t get at data Can’t use other services
  • 49. The Stitch Way Configuration based authentication, privacy, and security Service composition Anywhere you want REST API for MongoDB
  • 50. Stitch Architecture Stitch > db.users.find Amazon S3 MongoDB AtlasBI Tools Shell Access
  • 51. # M D B l o c a l Demo: MongoDB Stitch ELIOT HOROWITZ (That’s me!) CTO & Co-Founder
  • 52. # M D B l o c a l MongoDB Stitch Introduction DREW DI PALMA Product Manager, Cloud WHERE: Shard 1 WHEN: 15:55 – 15:40 Introduction to the Stitch SDK ADAYA COHEN Zemingo WHERE: Shard 2 WHEN: 11:35 – 12:15
  • 53. # M D B l o c a l MongoDB Stitch Today: - In beta - On Atlas Coming Soon: - GA - In Cloud/On Premises
  • 54. 1 6 J A N U A RY, 2 0 1 8 | H I LT O N # M D B l o c a l Eliot Horowitz CTO & Co-Founder @eliothorowitz