Atlas 101 Eworkshop Spanish

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 124

Bienvenido !

Taller :
Fundamentos de Atlas
Avisos
Avisos

Esta sesión será grabado — la grabación se compartirá posteriormente


Avisos

Esta sesión será grabado — la grabación se compartirá posteriormente

Todos los participantes serán silenciados


Avisos

Esta sesión será grabado — la grabación se compartirá posteriormente

Todos los participantes serán silenciados

Para cualquier pregunta durante y al final de la sesión, favor de usar el


recuadro Q&A. Para cualquier comentario en vivo, favor de usar el Chat
en su panel de control
Avisos

Esta sesión será grabado — la grabación se compartirá posteriormente

Todos los participantes serán silenciados

Para cualquier pregunta durante y al final de la sesión, favor de usar el


recuadro Q&A. Para cualquier comentario en vivo, favor de usar el Chat
en su panel de control

Habrá una breve encuesta al finalizar — agradecemos su participación :)


Agenda
Introducciones e Inicio

SLIDES: MongoDB revision tecnica

SLIDES: Atlas Demo

EJERCICIO: Prepare su cluster

EJERCICIO Y TRIVIA: CRUD

EJERCICIO: Indexes, Explain Plans

EJERCICIO y TRIVIA: Aggregation Framework

EJERCICIO: MongoDB Charts

Cierre
Gustavo Chavez
Arquitecto de Soluciones
@GCH4V3Z

Alejandro Mancilla
Arquitecto de Soluciones
@alxmancilla
Agenda
Introducciones e Inicio

SLIDES: MongoDB revision tecnica

SLIDES: Atlas Demo

EJERCICIO: Prepare su cluster

EJERCICIO Y TRIVIA: CRUD

EJERCICIO: Indexes, Explain Plans

EJERCICIO y TRIVIA: Aggregation Framework

EJERCICIO: MongoDB Charts

Cierre
¿Por qué MongoDB ?
MongoDB

PostgreSQL

Elasticsearch
Intuitiva y flexible
Redis Modelo Documental

Firebase

Potente máquina de búsqueda y


Consistently voted un API para trabajar con datos

“most wanted” database


Stack Overflow Developer Survey
Arquitectura distribuida para
resiliencia y escala
MongoDB, su adopción … y continúa creciendo !!
200m+

200,000,000+ Worldwide Activations


MongoDB Downloads Fastest Growing
Database over the past
1,500,000+ decade
Online Education
Course Registrations

2,000,000+
MongoDB Atlas
Consistently Voted Most Wanted Database
Clusters

1,000+
Technology and
Services Partners DB-Engines
Rankings
29,000+
Customers Across All
Industries

Stack Overflow Developer Surveys


La Evolución de MongoDB
Stack Overflow Survey: Most wanted database
3.0 & 3.2 3.4 3.6 4.0 4.2 4.4 5.0

2015 2016 2017 2018 2019 2020 2021


Doc-Level Views Change Streams Replica Set Transactions Distributed Transactions Union Time-Series collections
Concurrency Graph Processing Retryable Writes Atlas Global Clusters Client-Side Field Level Custom Agg Expressions Clustered indexes
RAFT / Fast Failover Zones ++Aggregation Schema Validation 40% Faster Shard Encryption Refinable Shard Keys Window functions
$lookup ++ Migrations Materialized Views Compound Hashed Shard New temporal operators
Expressive $lookUp
Ops Manager Auto-balancing ++ Atlas HIPAA Wildcard Indexes Keys Live resharding
Query Expressivity
Global PIT Reads Mirrored Reads Client-Side FLE multi-cloud
Compression Linearizable Reads Causal Consistency Atlas LDAP
Large Transactions Hedged Reads KMS
≤50 replicas Decimal Consistent Sharded Atlas Audit
Mutable Shard Key Values Resumable Initial Sync Long running snapshot reads
Aggregation ++ Intra-cluster Secondary Reads Atlas Enc. Storage Engine Atlas Data Lake (Beta) Time-Based Oplog Retention Atlas Serverless preview
Encrypted and compression Query Advisor Atlas Backup Snapshots Atlas Auto Scaling (Beta) Simultaneous Indexing Majority write concern default
In-Memory storage Log Redaction End to End Compression Type Conversions Atlas Search (Beta) Hidden Indexes Schema validation diagnostics
engines Spark Connector ++ WiredTiger 1m+ Snapshot Reads Multi-CAs Streaming Replication New MongoDB Shell GA
BI Connector BI Connector ++ Collections Expressive Updates Global Read/Write Concerns Resumable index builds
Non-Blocking Sec. Reads
Compass Apache Kafka Connector Rust & Swift Drivers GA Rewritten Swift driver
WiredTiger Compass ++
Hardware Monitoring
MongoDB BI Connector
++
SHA-2 & TLS 1.1+
MongoDB Charts GA TLS 1.3 & Faster Client Auth Rewritten C# LINQ provider
Compass Agg Pipeline
LDAP Authorization R Driver Builder Retryable Reads & Writes OCSP Stapling PyMongoArrow API
Acquisition Encrypted Backups Charts (post GA) Compass Export to Code
New Index Builds Kerberos Utility Charts on Data Lake
10x Faster stepDown Atlas Online Archive x509 certificate rotation
+ Integration Atlas X-Region Free Monitoring Cloud
Storage Node Watchdog Auto-Scaling Auditing ++
Replication Service
Atlas Auto Storage Zstandard Compression Schema Recommendations Atlas K8S controller
Scaling ACID
Ops Manager K8s Beta
AWS IAM Auth & Atlas x509 Ops Manager 5.0
Federated Queries Ops Manager migration wizard
MongoDB Transactions Atlas Search function scores &
synonyms
Atlas
Versioned API
Rapid
Releases
Intuitiva: Modelo Documental

{
"_id" : ObjectId("5ad88534e3632e1a35a58d00"),
"name" : {
"first" : "John",
"last" : "Doe" },
"address" : [
{ "location" : "work",
"address" : {
"street" : "16 Hatfields",
"city" : "London",
"postal_code" : "SE1 8DJ"},
"geo" : { "type" : "Point", "coord" : [
51.5065752,-0.109081]}},
+ {...}
],
"dob" : ISODate("1977-04-01T05:00:00Z"),
"retirement_fund" : NumberDecimal("1292815.75")
}

Tabular (Relational) Data Model Document Data Model


La informacion esta segregada en multiples tablas La información relacionada está en un solo documento
(rich document)
Flexible: Se adapta al cambio

{ {
"_id" : ObjectId("5ad88534e3632e1a35a58d00"), "_id" : ObjectId("5ad88534e3632e1a35a58d00"),
"name" : { "name" : {
"first" : "John", "first" : "John",
"last" : "Doe" }, "last" : "Doe" },
"address" : [ "address" : [
{ "location" : "work", { "location" : "work",
"address" : { "address" : {
"street" : "16 Hatfields", "street" : "16 Hatfields",
"city" : "London", "city" : "London",
"postal_code" : "SE1 8DJ"}, "postal_code" : "SE1 8DJ"},
"geo" : { "type" : "Point", "coord" : [ "geo" : { "type" : "Point", "coord" : [
51.5065752,-0.109081]}}, 51.5065752,-0.109081]}},
+ {...} + {...}
], ],
"dob" : ISODate("1977-04-01T05:00:00Z"), "phone" : [
"retirement_fund" : NumberDecimal("1292815.75") { "location" : "work",
"number" : "+44-1234567890"},
} + {...}
],
"dob" : ISODate("1977-04-01T05:00:00Z"),
"retirement_fund" : NumberDecimal("1292815.75")
}

Agregue campos dinamicamente en runtime


Intuitiva: drivers para lenguajes de programacion

Rust R
MongoDB Query API: Rico en capacidades/Expresivo

• Find anyone with phone # “1-212…”


Expressive
Queries • Check if the person with number “555…” is on MongoDB
the “do not call” list

Geospatial
• Find the best offer for the customer at geo
coordinates of 42nd St. and 6th Ave { customer_id : 1,
first_name : "Mark",
Text Search
• Find all tweets that mention the firm within the
last_name : "Smith",
last 2 days
city : "San Francisco",
Aggregation
• Count and sort number of customers by city, phones: [ {
compute min, max, and average spend
number : "1-212-777-1212",
• Add an additional phone number to Mark type : "work"
Native Binary Smith’s record without rewriting the document },
JSON Support • Update just 2 phone numbers out of 10
• Sort on the modified date {
number : "1-212-777-1213",
• Query for all San Francisco residences, lookup
JOIN type : "cell"
($lookup) their transactions, and sum the amount by
person }]
……...
Graph Queries
($graphLookup
• Query for all people within 3 degrees of
) separation from Mark
Completamente Indexable
Índices con capacidades extendidas - Optimizada para documentos - Mejoras más allá de la experiencia
RDBMS

Index Types Index Features


• Primary Index • TTL Indexes
– Every Collection has a primary key index – Single Field indexes, when expired delete the document

• Unique Indexes
• Compound Index
– Ensures value is not duplicated
– Index against multiple keys in the document
• Partial Indexes
• MultiKey Index – Expression based indexes, allowing indexes on subsets of
– Index into arrays data

• Wildcard Index • Case Insensitive Indexes


– Auto-index all matching fields, sub-documents & – Supports text search using case insensitive search
arrays • Sparse Indexes
– Only index documents which have the given field
• Text Indexes
– Support for text searches. Atlas Search offers
Lucene-based inverted indexes

• GeoSpatial Indexes
– 2d & 2dSphere indexes for spatial geometries

• Clustered Indexes
– For time series collections, pre-sorted by timestamp for
low latency queries
Transacciones “ACID” Multi-Documento

Multi-node transactional guarantees delivered


at scale
• Multi-statement, familiar relational syntax
• Easy to add to any application
• Multiple documents in 1 or many collections and
databases, across replica sets and sharded clusters

ACID guarantees
• Snapshot isolation, all or nothing execution
START TRANSACTION; session.startTransaction();
INSERT INTO orders (...) VALUES (...); db.orders.insert ({...})
UPDATE stock SET quantity=... WHERE ...; db.stock.update ({... } }, { $set: { quantity: ...} }})
COMMIT; session.commitTransaction();
MongoDB Replica Sets

2 a 50 copias
Application

Auto-Reparable (Auto - failover < 5 seconds)


Driver

Resuelve escenarios de disponibilidad:


• HR, DR, Maintenance
Primary

Secondary Replication

Secondary
Arquitectura : “Sharding”

Application

Driver

••• Mongos Mongos •••

Shard 1 Shard 2 Shard N


Alta Disponibilidad Primary Primary Primary
- Replica sets
Secondary Secondary ••• Secondary

Secondary Secondary Secondary

Escalamiento Horizontal
- Sharding
Alcance Amplio: Privado, Hibrido, Publico
Self-managed
Database as a Service
Laptop Own Datacenter Private cloud in the cloud

Self-Managed: Ops Mgr


• Automation Database as a Service
• Monitoring Alerting • Self-service & fully
automated
• Backup/Restore
• Global, elastic clusters
• Patching
• Highly available and
• Scaling
secure out of the box
• Performance Advice
• Operational tooling built
• Kubernetes Operator
in: monitoring, backups

• On AWS, Azure, GCP,


80+ regions total
Conveniente: Mismo codebase, APIs, Herramientas, en cualquier lugar
Atlas Demo
Es tu turno !
MongoDB Atlas
Login:
workshopbuilder.tech
Lanza Atlas...
Entra a la cuenta que fue auto
generada ...

Password:

AtlasW0rkshop!
Confirma tu invitación
Haz click en el botón y expande el
menú para poder ver tus “invitaciones”, y
aceptar la invitación
Acepta la invitacion
1)

2)
Ahora revisa tus clusters!
Debes de tener un "demo" cluster
Bienvenido al panel de control de Atlas
Agenda
Introducciones e Inicio

SLIDES: MongoDB revision tecnica

SLIDES: Atlas Demo

EJERCICIO: Prepare su cluster

EJERCICIO Y TRIVIA: CRUD

EJERCICIO: Indexes, Explain Plans

EJERCICIO y TRIVIA: Aggregation Framework

EJERCICIO: MongoDB Charts

Cierre
Configuracion

Ejercicio 1
Configuracion MongoDB Atlas:

- Acceso como Usuario de la DB


- Configuración de red
- Carga de datos de prueba
Parte 1

Database Access > Add new user


Parte 2

Open Network Access


Parte 3

Carga de datos de prueba

We will now be using sample_mflix.movies


database from now on
Ejercicios

Ejercicio 2
MongoDB Atlas CRUD:

- Inserte, verifique, modifique y


borrado
● Let’s you run native MQL
● Copying + Pasting + Typing

Herramientas que podemos utilizar:

Atlas Compass mongosh (shell)


Herramientas

Download compass
mongodb.com/try/download/compass
Conecte compass a Atlas
Vamos a ver los datos ...
Seleccionemos una colección ...
Ejercicio 1

Creemos un documento como


el que se muestra aquí
Crear
Ejercicio 1

CRUD: Crear un documento


Ejercicio 1
Ejercicio 2

Read Cuantas peliculas de


(Lectura) Ghostbuster tenemos ?
Ejercicio 2

CRUD: Busquemos documentos

{title:"Ghostbusters"}
Ejercicio 3

Update - Actualice el documento y


agregue un campo imdb (si
(Actualiza) no existe).
- Cree un objeto para el
campo con un "id"
aleatorio: tt008732, con una
calificación de más de 7.8 y
30000 votos.
Ejercicio 3

CRUD: Editemos un documento


Ejercicio 4

Delete - Borre un documento


(Borrado)
Ejercicio 4

CRUD: Borrado de documento


CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987})
CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987


CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"})
CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres


CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres

db.movies.find({genres:["Comedy"]})
CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres

db.movies.find({genres:["Comedy"]}) “Comedy” as only genre


CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres

db.movies.find({genres:["Comedy"]}) “Comedy” as only genre

db.movies.find({genres:{$in:["Comedy", "Drama"]}})
CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres

db.movies.find({genres:["Comedy"]}) “Comedy” as only genre

db.movies.find({genres:{$in:["Comedy", "Drama"]}}) “Comedy” or “Drama”


CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres

db.movies.find({genres:["Comedy"]}) “Comedy” as only genre

db.movies.find({genres:{$in:["Comedy", "Drama"]}}) “Comedy” or “Drama”

db.movies.find({revenues: {$exists: true}})


CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres

db.movies.find({genres:["Comedy"]}) “Comedy” as only genre

db.movies.find({genres:{$in:["Comedy", "Drama"]}}) “Comedy” or “Drama”

db.movies.find({revenues: {$exists: true}}) Documents that have a revenue attr.


CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres

db.movies.find({genres:["Comedy"]}) “Comedy” as only genre

db.movies.find({genres:{$in:["Comedy", "Drama"]}}) “Comedy” or “Drama”

db.movies.find({revenues: {$exists: true}}) Documents that have a revenue attr.

db.movies.find({"imdb.rating" : {$gt: 8.0}, rated:"PG"})


CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres

db.movies.find({genres:["Comedy"]}) “Comedy” as only genre

db.movies.find({genres:{$in:["Comedy", "Drama"]}}) “Comedy” or “Drama”

db.movies.find({revenues: {$exists: true}}) Documents that have a revenue attr.

db.movies.find({"imdb.rating" : {$gt: 8.0}, rated:"PG"}) IMDB Rating>8.0 and PG Rating


CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres

db.movies.find({genres:["Comedy"]}) “Comedy” as only genre

db.movies.find({genres:{$in:["Comedy", "Drama"]}}) “Comedy” or “Drama”

db.movies.find({revenues: {$exists: true}}) Documents that have a revenue attr.

db.movies.find({"imdb.rating" : {$gt: 8.0}, rated:"PG"}) IMDB Rating>8.0 and PG Rating

db.movies.find({title: {$regex: '^Dr. Strangelove'}})


CRUD: Concurso

Query What’s the Question?

db.movies.find({year:1987}) … from 1987

db.movies.find({genres: "Comedy"}) “Comedy” as one of their genres

db.movies.find({genres:["Comedy"]}) “Comedy” as only genre

db.movies.find({genres:{$in:["Comedy", "Drama"]}}) “Comedy” or “Drama”

db.movies.find({revenues: {$exists: true}}) Documents that have a revenue attr.

db.movies.find({"imdb.rating" : {$gt: 8.0}, rated:"PG"}) IMDB Rating>8.0 and PG Rating

db.movies.find({title: {$regex: '^Dr. Strangelove'}}) Title starting with “Dr. Strangelove”


Ejercicios

Ejercicio 3
- Índices y planes de ejecución
Al finalizar este ejercicio usted será capaz de …

● Identificar cómo se ejecutó la búsqueda utilizando un plan de


ejecución
● Crear un índice en una colección
● Ver como un índice afecta el “Query Plan”
Corramos algo básico...
"Equality, Sort, Range" query
Corramos una búsqueda que sortea por título las películas que se lanzaron a Más
Tardar en 2000 y donde "Bill Murray" aparece como parte del cast
Ejercicio

En Compass
Ejercicio

Cómo obtenemos el plan de el query...


Ejercicio

Vamos ha hacer Run a query that sorts by title the movies


that were released later than or 2000 and
el query y where "Bill Murray" appears as part of the
cast
expliquemos el
Plan Then get to the Explain plan tab.
Ejercicio

Revisemos el plan de esta búsqueda


Ejercicio

Cree un índice para hacer la busqueda mas rapida


Ejercicio

Cree un indice Cree un indice for:


{"cast":1, "year":1, "title":1}
y revisamos el
Explain Plan
Luego revisamos el Explain plan tab.
...
Generamos el indice !
PERO seguimos sorteando en memoria
EJercicio

Mejoremos el Crea Un mejor índice para:


{"cast":1, "title":1, "year":1}
índice y
revisemos de Luego revisamos el Explain plan tab AGAIN.

nuevo !
Genial!
Este índice utiliza la regla de ESR :
Equality (cast), Sort (title), Range (year)

Siga la regla ESR


Para índices compuestos esta regla le ayudará a decidir el
orden de los campos en el índice:

● Primero los campos contra los cuales se requiere IGUALDAD


(Equality).
● Siguientes campos a ser indexados serán los que requieren el
Sortear
● Por último los campos que representan el Rango de los datos a
ser accesados
Break

Tomemos 5 min de
descanso :)
Ejercicio

Ejercicio 4
- Framework de agregación
Al final de este ejercicio usted será capaz de ...

● Tener un entendimiento básico de que es el “Framework” de


agregación
● Escribir búsquedas básicas utilizando el mismo
Aggregation Framework
(Línea de agregación)
● Procesos de línea db.movies.aggregate( [
$match stage {$match: { status: "A" } },
complejos para } }
$group stage { $group: { _id: "$cust_id",total: { $sum: "$amount" }

analitica ] )

● Similar a unix pipe {


cust_id: "A123",
● Genere una linea amount: 500,
status: "A", {
} cust_id: "A123",
compleja, cuando {
amount: 500,
status: "A",
{
encadenamos
cust_id: "A123", }
id: "A123",
amount: 250,
total: 750
status: "A", { }
comandos
} cust_id: "A123",
amount: 250,
{ status: "A", $group
● Expresiones
{
cust_id: "A123", $match }
id: "B212",
amount: 200,
total: 200
status: "A", {
“Compuestas” (Rich) } cust_id: "B212",
amount: 200,
}

{ status: "A",
cust_id: "A123", }
amount: 300,
status: "D",
}

Orders
Capacidades de Agregacion
Un “Framework” lleno de capacidades compuestas y expresivas

Pasos/Etapas en la línea Operadores

• $match • $lookup • Mathematical • Conditionals • String


– $add, $abs, – $and, $or, $eq, $lt, – $toUpper,
• $group • $project $substract, $lte, $gt, $gte, $toLower, $substr,
$multiply, $divide, $cmp, $cond, $strcasecmp,
• $facet • $sort $log, $log10, $switch, $in, etc $concat, $split,
$stdDevPop, etc.
• $geoNear • $unwind $stdDevSam, • Date
$avg, $sqrt, $pow,
– $dateFromParts, • Literals
$sum, $zip, etc.
• $graphLookup $dateToParts, – $exp, $let, $literal,
$dateFromString, $map, $type, etc
• Array $dateToString,
– $push, $reduce, $dayOfMonth,
$reverseArray, $isoWeek,
$addToSet, $minute, $month,
$arrayElemAt, $year, etc.
$slice, etc.
Demo:

Vamos a Darle!
Generemos algunas agregaciones
[{$match: {
"tomatoes.viewer.rating":{$gt:3}
}}, {$group: {
_id: "$countries",
"movie_count": {
$sum: 1
},
"award_count" : {
$sum: "$awards.wins"
},
"nomination_count" : {
$sum: "$awards.nominations"
},
"max_tomatoes_rating": {
$max: "$tomatoes.viewer.rating"
}
}}, {$sort: {
"movie_count": -1
}}]
/**
* Match movies built between the 1990 to 2000
*/
{
"year":{$gte:1990,$lt:2000},
"tomatoes.viewer.rating":{$gt:4}
}
Aggregation workshop : Concurso

Aggregation Question

{$match: {genres: "Comedy"}}


Aggregation workshop : Concurso

Aggregation Question

{$match: {genres: "Comedy"}} How can you find all comedies?


Aggregation workshop : Concurso

Aggregation Question

{$match: {genres: "Comedy"}} How can you find all comedies?

{$unwind: {path: "$countries"}}


Aggregation workshop : Concurso

Aggregation Question

{$match: {genres: "Comedy"}} How can you find all comedies?

{$unwind: {path: "$countries"}} How can you create an individual document for each country the
movie was in?
Aggregation workshop : Concurso

Aggregation Question

{$match: {genres: "Comedy"}} How can you find all comedies?

{$unwind: {path: "$countries"}} How can you create an individual document for each country the
movie was in?

{ How can you count all the comedies grouped by country?


$group: {
_id: "$countries",
count: {$sum: 1}}
}
Aggregation workshop : Concurso

Aggregation Question

{$match: {genres: "Comedy"}} How can you find all comedies?

{$unwind: {path: "$countries"}} How can you create an individual document for each country the
movie was in?

{ How can you count all the comedies grouped by country?


$group: {
_id: "$countries",
count: {$sum: 1}}
}

{$out: "trivial"} How can you output the results into a new collection?
Aggregation workshop : Concurso

Aggregation Question

{$project: {
_id:0,
title:1,
yearsOld: {
$subtract:[2021,"$year"]}
}
}
Aggregation workshop : Concurso

Aggregation Question

{$project: { How can you display just the title and the age of the movie in years?
_id:0,
title:1,
yearsOld: {
$subtract:[2021,"$year"]}
}
}
Ejercicio

Corramos un Quien es el director que ha

“query” con dirigido más películas en


USA?
agregación
Primero hacemos match de las películas en USA
Luego agrupamos por director y sumamos las
películas
Finalmente sorteamos basado en nombre de
pelicula en orden inverso(-1)
Ejercicio

Ejercicio 5
- Índices de búsqueda textual
- Agrega Lucene Full Text Search como un
servicio completamente administrado a su
clúster Atlas
- Power of Lucene 8, sin aprovisionamiento y
ejecución de una plataforma de búsqueda
separada
- Integrado con MongoDB Query Language,
por lo que no hay API separadas para
aprender
- Indexación dinámica y estática que admite
difusa y comodín búsqueda, booleano y
compuestas consultas, analizadores de

Atlas Search -
idiomas, puntuación y fragmentos
Configurados a través de Atlas Data Explorer o
API
Exercise

Go to Cluster > Search > Create index


Exercise

Cree un índice de Atlas en la


Cree un indice colección de “movies”.
de Atlas Escoja cualquier campo, si
Search lo prefiere seleccione el
“plot”.

Deje todo lo demas como


default.
Ejercicio

Navegue a: Search > List indexes > Query


Exercise

Hagamos una Utilice el índice para hacer

busqueda una búsqueda.

Busque "Jurassic park",


"action", "matrix", "motrix"
Ejercicio

Busque y revise los resultados


Ejercicio

Ejercicio 6
- Crear un dashboard en "Atlas Charts"
MongoDB Charts: Cree, Visualize, Comparta

Trabajamos con datos Coneccion segura a sus datos. Comparte tableros de


complejos Filtre. Sample. Visualize. control
Ejercicio

Active Charts
Active Charts (1)
Add the Data Collection as a Data Source:

● In MongoDB Atlas, click on Charts on the left side


● Click the Data Sources tab
● Click New Data Source
● Select your Atlas Deployment in your project (demo)
● Click Connect
● Select the sample_mflix.movies collection
● Click Set Permissions, leave the permissions as the default
● Click Publish Data Source
Genere un “panel de control” (2)
Create a New Dashboard

● Click the Dashboards tab


● Click the New Dashboard button
● Enter the Title: Movie Details
● Click Create
Ejercicio de Charts
Create Chart Showing Directors with the Most Awards:

1. Click Add Chart


○ In the Data Source dropdown, select sample_mflix.movies
2. Select Chart Type: Column / Stacked
3. X Axis: director
○ Sort By: Aggregated Value, Descending
○ Limit: 10
4. Y Axis: awards.wins
○ Aggregate: sum
5. Series: genres
○ Array Reduction: Unwind Array
○ Title: Directors with Most Awards, Split by Genre
6. Click Save and Close
Chart result
Agenda
Introducciones e Inicio

SLIDES: MongoDB revision tecnica

SLIDES: Atlas Demo

EJERCICIO: Prepare su cluster

EJERCICIO Y TRIVIA: CRUD

EJERCICIO: Indexes, Explain Plans

EJERCICIO y TRIVIA: Aggregation Framework

EJERCICIO: MongoDB Charts

Cierre / Preguntas ?
● La manera más rápida de empezar con MongoDB:

https://www.mongodb.com/cloud/atlas

● Crear un Cluster de tipo M0 ¡totalmente Gratis!

● MongoDB Atlas Documentación (Inglés) : https://docs.atlas.mongodb.com/


Más Recursos para arrancar con MongoDB (Inglés)

Blogs y DevHub Vídeos Feedback Engine


MongoDB University

Cursos Caminos de

en línea aprendizaje

Paneles de
Certificaciones negocio

Developer Hub
Preguntas ?
Mil Gracias !
Gustavo Chávez | Arquitecto de soluciones | MongoDB | @GCH4V3Z

Alejandro Mancilla | Arquitecto de soluciones | MongoDB | @alxmancilla

También podría gustarte