SlideShare una empresa de Scribd logo
MongoDB Avanzado
Víctor CuervoMADRID · NOV 27-28 · 2015
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
$db.getuser(“victorcuervo”)
{
name: “Víctor Cuervo”,
profession: “IT Architect. Santander Group”,
socialinfo: {
twitter:“@victor_cuervo”,
website:“http://lineadecodigo.com”,
linkedin:“https://es.linkedin.com/in/victorcuervo”,
email:“vcuervo@gmail.com”
},
hobbies: [“winetasting”,”programming”],
programming_languages: [“java”,”mongodb”,”javascript”,”python”]
}
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Recursos de la presentación
http://twitter.com/victor_cuervo
https://github.com/victorcuervo/mongodb-codemotion
http://www.slideshare.net/victorcuervo/
Menos “likes”. Más cervezas.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Índice
MongoDB
Nuevo en MongoDB 3.2
Consultas Avanzadas
Índices Avanzados
Modelado en MongoDB
DBaaS y PaaS
Tooling con MongoDB
{twitter:”@victor_cuervo”}
Una base de datos
NOSQL llamada
MongoDB
¿Todavía no sabes qué es
MongoDB?
10 comandos sobre MongoDB
Gartner
1
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
¿Todavía no sabes qué es MongoDB?
Base de datos NOSQL orientada a documentos (BSON-
JSON).
Trabajo con modelos de datos flexibles
Proporciona alto rendimiento y alta escalabilidad.
Ofrece múltiples APIs sobre diferentes lenguajes de
programación: java, python, shell, nodejs, go,…
Maneja bases de datos, colecciones, campos, indices,…y no
permite hacer un xxxxxx join.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
10 comandos MongoDB
db.ciudades.find({ciudad:”Madrid”})
db.ciudades.find({habitantes:{$lt:60000})
db.ciudades.find().sort({ciudad:1}).limit(10)
db.ciudades.find({ciudad: {$in:[“Avila”,”Madrid”]}})
db.ciudades.insert({“ciudad”:”Avila”,”habitantes”:58915})
db.ciudades.update({“ciudad”:”Avila”},{$set:{habitantes:58915}})
db.ciudades.update({“ciudad”:”Avila”},{$set:{habitantes:58915}},{upsert:true})
db.ciudades.delete({ciudad:”Zamora”})
db.ciudades.update({ciudad:”Avila”, {$push : {monumentos: {$each: [“Murallas”, “San Vicente”,
“La Santa”]}}})
db.ciudades.createIndex({ciudad:”1”})
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Cuadrante Mágico Gartner
Cuadrante sobre bases
de datos operacionales.
MongoDB dentro del
cuadrante de challengers.
(*) https://www.mongodb.com/blog/post/gartner-positions-
mongodb-challenger-magic-quadrant-operational-database-
management
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Si te has quedado con dudas…
Manual MongoDB
https://docs.mongodb.org/manual/
NOSQL: Primeros pasos en MongoDB
http://www.slideshare.net/victorcuervo/nosql-primeros-pasos-en-mongodb-codemotion
Ejemplos de código en MongoDB
http://lineadecodigo.com/categoria/mongodb/
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Antes de empezar… Colección Ejemplo
{
"_id" : ObjectId("565914732c23d80f730a1f49"),
"gender" : "M",
"name" : "Dennis Rogers",
"username" : "drogers1",
"birthday" : "06/11/1957",
"email" : "drogers1@issuu.com",
"social" : {
"facebook" : "drogers1",
"twitter" : "drogers1",
"linkedin" : "drogers1"
},
"description" : "Proin interdum mauris non ligula….”,
"hobbies" : [
"tv",
"cine",
"viajes"
]
}
{twitter:”@victor_cuervo”}
Novedades sobre
MongoDB 3.2
Nuevos engines
Validación de documentos
MongoDB y RealTime
MongoDB Compass
API de Métricas
2
Todo el detalle de MongoDB 3.2 en https://www.mongodb.com/mongodb-3.2?jmp=docs
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Nuevos Engines
Se añaden nuevos engines de almacenamiento.
Las capacidades de la plataforma se pueden extender
atendiendo al tipo de carga que tengamos para cada
escenario:
Almacenamiento en memoria para real-time
Almacenamiento de datos securizados
Uso de WiredTiger como engine por defecto.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Nuevos Engines: Escenarios
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Validación de documentos
En MongoDB 3.2 se puede
personalizar si queremos forzar
la validación del documento:
estructura, tipos de datos,
rangos,..
Ayuda al gobierno de los
schemas y datos almacenados.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Validación de documentos
db.runCommand({
collMod: "contacts",
validator: {
$and: [
{year_of_birth: {$lte: 1994}},
{$or: [
{phone: { $type: "string" }},
{email: { $type: "string" }}
]}]
}})
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
MongoDB y Real Time
El BI Connector permite integrar MongoDB con
herramientas de visualización como Tableau, QlikView,…
“El 90% de los datos nunca son analizados y el
60% de los datos pierde el valor milisegundos
después de ser generado”
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
MongoDB Compass
MongoDB Compass
es un GUI que permite
explorar los datos de
forma visual sin tirar
una consulta.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
API de Métricas
MongoDB 3.2 ofrece un API que expone las métricas de
rendimiento de las queries para que puedan ser
consumidas por herramientas APM (Application
Performance Monitoring).
{twitter:”@victor_cuervo”}
Consultas Avanzadas
en MongoDB
Covered Queries
Text Search
Expresiones Regulares
Bulking
Capped Collection
Two Phase Commit
3
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Covered Queries
Las covered queries son aquellas que:
• todos los campos de la query son parte del índice y
• todos los campos devueltos por una query están en el mismo
índice
La búsqueda de MongoDB solo se realizará por el índice y no a través
de los documentos. Como los índices están en memoria, la
recuperación de información es muy rápida.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Ejemplo de Covered Query
{
"_id": ObjectId("53402597d852426020000002"),
"birthday": “11/18/1977”,
"gender": "M",
"name": “Víctor Cuervo",
"username": “victorcuervo"
}
# Índice
db.users.createIndex({gender:1,username:1})
#Consulta
db.users.find({gender:"M"},{username:1,_id:0})
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Text Search
MongoDB soporta índices sobre elementos de texto. De esa manera podemos
realizar búsquedas de cadenas de texto.
Para poder utilizar Text Search en MongoDB deberemos de:
• Activar las búsquedas de texto mediante el parámetro
searchTextEnabled.
• Crear un índice de texto
• Realizar la consulta.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Ejemplo de Text Search
db.adminCommand({setParameter:true,textSearchEnabled:true})
{
"_id": ObjectId("53402597d852426020000002"),
"username": “raulanton”,
“description”: “Apasionado de la lectura de novelas históricas…”,
“hobbies”: [“lectura”,”novelas”,”cine”,”naturaleza”]
}
db.posts.createIndex({description:"text"})
db.posts.createIndex({description:"text"}, {default_language:spanish})
db.posts.find({$text:{$search:"novelas"}})
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Ejemplo de Text Search
#Consulta de texto
db.posts.find({$text:{$search:”novelas”}})
# Más nos vale tener el índice
Error: error: {
"waitedMS" : NumberLong(0),
"ok" : 0,
"errmsg" : "text index required for $text query",
"code" : 27
}
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Expresiones Regulares
Podemos realizar búsquedas por patrones mediante expresiones regulares.
MongoDB nos proporciona el operador $regexp
Se pueden indicar parámetro de las búsquedas, por ejemplo si queremos que
sean “case sensitive”.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Ejemplo de Expresiones Regulares
{
"_id": ObjectId("53402597d852426020000002"),
"username": “raulanton”,
“name”: “Raúl Antón”,
“description”: “Apasionado de la lectura de novelas históricas…”,
“hobbies”: [“lectura”,”novelas”,”cine”,”naturaleza”]
}
db.posts.find({name:{$regex:”Ra”}})
db.posts.find({name:/^R/})
db.posts.find({contenido:{$regex:”ra",$options:"$i"}})
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Bulking
MongoDB permite ejecutar operaciones en batch. De
esta manera nos devuelve un documento resultado de la
ejecución de todas las operaciones.
De forma ordenada o desordenada:
initializeOrderedBulkOp()
initializeUnOrderedBulkOp()
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Ejemplo de bulking
bulk = db.products.initializeOrderedBulkOp()
bulk.insert({name:"A",items:10})
bulk.insert({name:"B",items:15})
bulk.find({name:"A"}).update({ $inc: { items : 1 }})
bulk.find({name:"B"}).removeOne()
bulk.execute()
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Capped Collection
Son colecciones de tamaño fijo que soportan un alto
throughput de operaciones. Mantienen el orden de
inserción, por lo cual no necesitan un índice.
Funcionan como un buffer circular, de tal manera que
cuando se llena se eliminan los documentos más antiguos.
MADRID · NOV 27-28 · 2015
Ejemplo de Capped Collection
# Crear una Capped Collection
db.createCollection( "log", { capped: true, size: 100000 } )
# Validar si es una Capped Collection
db.log.isCapped()
#Recuperar los documento en orden inverso
db.log.find().sort( { $natural: -1 } )
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Two Phase Commit
Las operaciones en MongoDB son atómicas sobre un solo
documento. La capacidad de tener documentos anidados junto
con la atomicidad sería un enfoque para los antiguos modelos
“two phase commit”.
En el caso de que haya que tratar varios documentos de forma
transaccional hay que implementar dicha transaccionalidad en la
aplicación.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Two Phase Commit Pattern
Consideramos el escenario en el que vamos a transferir
desde la cuenta A a la cuenta B una cantidad de
dinero.
Partimos de dos colecciones:
cuentas - accounts
transacciones - transacctions
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Two Phase Commit Pattern
1. Inicializamos las cuentas
db.accounts.insert(
[
{ _id: "A", balance: 1000, pendingTransactions: [] },
{ _id: "B", balance: 1000, pendingTransactions: [] }
]
)
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Two Phase Commit Pattern
2. Creamos una transacción
db.transactions.insert(
{ _id: 1,
source: “A",
destination: “B",
value: 100,
state: “initial",
lastModified: new Date()
})
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Two Phase Commit Pattern
3. Buscamos una transacción para ejecutar
var t = db.transactions.findOne( { state: "initial" } )
db.transactions.update(
{ _id: t._id, state: "initial" },
{
$set: { state: "pending" },
$currentDate: { lastModified: true }
}
)
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Two Phase Commit Pattern
4. Movimiento en cuenta y transacciones Pendientes
db.accounts.update(
{ _id: t.source, pendingTransactions: { $ne: t._id } },
{ $inc: { balance: -t.value }, $push: { pendingTransactions: t._id } }
)
db.accounts.update(
{ _id: t.destination, pendingTransactions: { $ne: t._id } },
{ $inc: { balance: t.value }, $push: { pendingTransactions: t._id } }
)
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Two Phase Commit Pattern
5. Transacciones Aplicadas
db.transactions.update(
{ _id: t._id, state: "pending" },
{
$set: { state: "applied" },
$currentDate: { lastModified: true }
}
)
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Two Phase Commit Pattern
6. Eliminamos las pendientes de las cuentas
db.accounts.update(
{ _id: t.source, pendingTransactions: t._id },
{ $pull: { pendingTransactions: t._id } }
)
db.accounts.update(
{ _id: t.destination, pendingTransactions: t._id },
{ $pull: { pendingTransactions: t._id } }
)
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Two Phase Commit Pattern
7. Transacción ejecutada
db.transactions.update(
{ _id: t._id, state: "applied" },
{
$set: { state: "done" },
$currentDate: { lastModified: true }
}
)
Y luego me dices que el Cobol no mola…
{twitter:”@victor_cuervo”}
Índices Avanzados en
MongoDB
Índices multiclave
Índices sobre textos
Índices TTL
4
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Índices Multiclave
Son los índices que se aplican cuando el campo es un array. Se
crea una clave de índice por cada uno de los elementos que
componen el array.
No se pueden crear índices multiclave compuestos y tampoco se
puede especificar un índice multiclave como sharing key.
db.coll.createIndex( { <field>: < 1 or -1 > } )
MADRID · NOV 27-28 · 2015
Índices sobre textos
MongoDB cuenta con soporte para índices de texto para
facilitar búsquedas de contenido. Soporta “stopwords” para
ciertos idiomas.
db.users.createIndex( { description: "text" } )
# Para buscar por todos los campos
db.users.createIndex( { "$**": "text" } )
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Índices TTL
MongoDB permite que haya índices que tengan un tiempo
de vida. Pasado ese tiempo de vida, expiran.
db.eventlog.createIndex( { "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 } )
{twitter:”@victor_cuervo”}
Modelado en
MongoDB
One-To-One (1:1)
One-To-Many (1:N)
Many-To-Many (M:N)
5
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
One-To-One (1:1)
Las relaciones 1:1 pueden ser modeladas de dos formas
en MongoDB: insertar la relación en un único documento o
bien tener un link al otro documento.
{
name: “Víctor Cuervo",
age: 38
}
{
street: Alcala 45",
city: "Madrid"
}
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
One-To-One (1:1)
Embedding
{
name: “Víctor Cuervo",
age: 38,
address: {
street: “Alcala, 45",
city: "Madrid"
}
}
Linking
{
_id: 1,
name: “Víctor Cuervo",
age: 38
}
{
user_id: 1,
street: “Alcala, 45",
city: "Madrid"
}
MADRID · NOV 27-28 · 2015
One-To-Many (1:N)
Las relaciones 1:N pueden ser modeladas de tres formas
en MongoDB: insertar la relación en un único documento,
link al otro documento o bucketing.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
One-To-Many (1:N)
{
title: “Línea de Código",
url: “http://lineadecodigo.com",
text: “Aprende a Programar"
}
{
blog_entry_id: 1,
name: “Daniel Hernandez",
created_on: ISODate("2014-01-01T10:01:22Z"),
comment: “Me gusta tu blog"
}
{
blog_entry_id: 1,
name: “Fran Honrrubia",
created_on: ISODate("2014-01-01T11:01:22Z"),
comment: “Gran trabajo"
}
Blog
Comentarios
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
One-To-Many (1:N). Embeding
{
title: “Línea de Código",
url: "http://lineadecodigo.com",
text: “Aprende a Programar",
comments: [{
name: “Daniel Hernandez",
created_on: ISODate("2014-01-01T10:01:22Z"),
comment: “Me gusta tu blog"
}, {
name: “Fran Honrubia",
created_on: ISODate("2014-01-01T11:01:22Z"),
comment: “Gran trabajo"
}]
}
El contenido insertado se crea
dentro de un array.
Hay que tener cuidado con el
tamaño del array y no sobrepasar
los 16Mb.
A MongoDB le cuesta calcular el
padding. Problemas de
performance.
MADRID · NOV 27-28 · 2015
One-To-Many (1:N). Linking
{
blog_entry_id: 1,
name: “Daniel Hernandez",
created_on: ISODate("2014-01-01T10:01:22Z"),
comment: “Me gusta tu blog"
}
{
blog_entry_id: 1,
name: “Fran Honrubia",
created_on: ISODate("2014-01-01T11:01:22Z"),
comment: “Gran trabajo"
}
Hay que hacer tantas lecturas a
la base de datos como
documentos tengamos
enlazados.
MADRID · NOV 27-28 · 2015
One-To-Many (1:N). Bucketing
{
blog_entry_id: 1,
page: 1,
count: 50,
comments: [{
name: “Daniel Hernandez",
created_on: ISODate("2014-01-01T10:01:22Z"),
comment: “Me gusta tu blog"
}, ...]
}
{
blog_entry_id: 1,
page: 2,
count: 1,
comments: [{
name: “Fran Honrubia",
created_on: ISODate("2014-01-01T11:01:22Z"),
comment: “Gran trabajo"
}]
}
Es una mezcla entre embedding y
linking. Se divide en contenedores
con un tamaño y se inserta el
comentario en el contenedor que
toca.
Tiene que tener algún concepto de
división como fechas,….
MADRID · NOV 27-28 · 2015
Many-To-Many (N:N)
Las relaciones N:N se modelan mediante técnicas de
embedding.
En el caso de que haya una de las partes predominantes
se modelaría hacía un solo sentido.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Many-To-Many (N:N). Two Ways
{
_id: 1,
name: "Peter Standford",
books: [1, 2]
}
{
_id: 2,
name: "Georg Peterson",
books: [2]
}
{
_id: 1,
title: "A tale of two people",
categories: ["drama"],
authors: [1, 2]
}
{
_id: 2,
title: "A tale of two space ships",
categories: ["scifi"],
authors: [1]
}
MADRID · NOV 27-28 · 2015
Many-To-Many (N:N). One Way
{
_id: 1,
name: "drama"
}
{
_id: 1,
title: "A tale of two people",
categories: [1],
authors: [1, 2]
}
{twitter:”@victor_cuervo”}
DBaaS y PaaS:
MongoDB en Cloud
• MongoLab
• MongoDB y Docker
• MongoDB en PaaS
6
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
MongoLab
MongoLab es un BDaaS que nos permite
aprovisionarnos bases de datos de MongoDB de forma
dinámica en cloud de una forma sencilla.
Funciona en formato PaaS que funciona sobre Google,
AWS y Azure.
$ mongo ds047037.mongolab.com:47037/<db> -u <dbuser> -p <dbpassword>
$ mongodb://<dbuser>:<dbpassword>@ds047037.mongolab.com:47037/<db>
MADRID · NOV 27-28 · 2015
Características MongoLab
MongoLab nos permite de forma sencilla:
• Crear bases de datos dinámicamente.
• Monitorización y alertas 24x7.
• GUI para operaciones básicas.
• Análisis de índices y performance.
• Establecer seguridad en la conexión.
• Soporte para APIs de diferentes lenguajes.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
MongoLab
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
MongoDB y Docker
MongoDB ya está “dockerizado”.
Disponible en el Docker Hub Registry (https://hub.docker.com/_/mongo/)
$ docker run --name some-mongo -d mongo
$ docker run -it --link some-mongo:mongo --rm mongo sh -c 'exec mongo
"$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"'
Crear una imagen Docker con MongoDB
https://docs.docker.com/engine/examples/mongodb/
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
MongoDB en PaaS
MongoDB está disponible en diferentes entornos
PaaS: BlueMix, Heroku, OpenShift,…
{twitter:”@victor_cuervo”}
Herramientas de
Tooling para
MongoDBMockaroo
Mongo Hacker
7
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Herramientas de tooling para MongoDB
Existen múltiples herramientas de tooling alrededor de
MongoDB: GUI, Conectores, Monitorización, Performance
Tuning, Mejoras del Shell, Manejo para JSON,…
Hay un listado extenso en http://mongodb-tools.com/
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Mockaroo
Herramienta online que nos permite crear colecciones JSON.
• Tipos de datos estándar: datos sobre personas, salud, monetarios,
colores,
• Permite crear subdocumentos y arrays
• Trabajar con expresiones regulares
• Dispone de un API para invocarlo de forma externa.
https://www.mockaroo.com
(*) Gratuito hasta 1.000 filas.
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Mockaroo
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Mongo Hacker
Permite mejorar el Shell de
MongoDB:
• Añadir colores
• Extensiones al API Shell
• Ayudas Framework
Agregación
https://tylerbrock.github.io/mongo
-hacker/
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Recursos
Nuevo en MongoDB 3.2
Capped collection
Nuevo API de Bulking
Two Phase Commit
Modeling MongoDB Schema
MongoLab
Mockaroo
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Recursos de la presentación
http://twitter.com/victor_cuervo
https://github.com/victorcuervo/mongodb-codemotion
http://www.slideshare.net/victorcuervo/
MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”}
Preguntas
MongoDB Avanzado

Más contenido relacionado

La actualidad más candente

[WEBINAR] 10 cosas que debes saber sobre Active Directory.
[WEBINAR] 10 cosas que debes saber sobre Active Directory.[WEBINAR] 10 cosas que debes saber sobre Active Directory.
[WEBINAR] 10 cosas que debes saber sobre Active Directory.
Grupo Smartekh
 
Presentacion BD NoSQL
Presentacion  BD NoSQLPresentacion  BD NoSQL
Presentacion BD NoSQL
Andrea Antunes
 
Sistema gestor de base de datos( mongobd)
Sistema gestor de base de datos( mongobd)Sistema gestor de base de datos( mongobd)
Sistema gestor de base de datos( mongobd)Shon AE
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDB
Victor Cuervo
 
Indexing with MongoDB
Indexing with MongoDBIndexing with MongoDB
Indexing with MongoDB
MongoDB
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
Cristian Salazar C.
 
9. Document Oriented Databases
9. Document Oriented Databases9. Document Oriented Databases
9. Document Oriented Databases
Fabio Fumarola
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
Andrés Londoño
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
Diego López-de-Ipiña González-de-Artaza
 
Vistas en bases de datos
Vistas en bases de datosVistas en bases de datos
Vistas en bases de datos
Denisse C
 
Fast querying indexing for performance (4)
Fast querying   indexing for performance (4)Fast querying   indexing for performance (4)
Fast querying indexing for performance (4)
MongoDB
 
Mongodb - NoSql Database
Mongodb - NoSql DatabaseMongodb - NoSql Database
Mongodb - NoSql Database
Prashant Gupta
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
Stefano Salvatori
 
Bases de Datos NoSQL
Bases de Datos NoSQLBases de Datos NoSQL
Bases de Datos NoSQL
Isabel Gómez
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
Fundamentos de las bases de datos
Fundamentos de las bases de datosFundamentos de las bases de datos
Fundamentos de las bases de datos
Jaime David Romero Olivo
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
dfgdfgs
 

La actualidad más candente (20)

[WEBINAR] 10 cosas que debes saber sobre Active Directory.
[WEBINAR] 10 cosas que debes saber sobre Active Directory.[WEBINAR] 10 cosas que debes saber sobre Active Directory.
[WEBINAR] 10 cosas que debes saber sobre Active Directory.
 
Presentacion BD NoSQL
Presentacion  BD NoSQLPresentacion  BD NoSQL
Presentacion BD NoSQL
 
Sistema gestor de base de datos( mongobd)
Sistema gestor de base de datos( mongobd)Sistema gestor de base de datos( mongobd)
Sistema gestor de base de datos( mongobd)
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDB
 
MongoDB
MongoDBMongoDB
MongoDB
 
Indexing with MongoDB
Indexing with MongoDBIndexing with MongoDB
Indexing with MongoDB
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Presentación de Base de datos II
Presentación de Base de datos IIPresentación de Base de datos II
Presentación de Base de datos II
 
9. Document Oriented Databases
9. Document Oriented Databases9. Document Oriented Databases
9. Document Oriented Databases
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
 
Vistas en bases de datos
Vistas en bases de datosVistas en bases de datos
Vistas en bases de datos
 
Fast querying indexing for performance (4)
Fast querying   indexing for performance (4)Fast querying   indexing for performance (4)
Fast querying indexing for performance (4)
 
Mongodb - NoSql Database
Mongodb - NoSql DatabaseMongodb - NoSql Database
Mongodb - NoSql Database
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
 
Bases de Datos NoSQL
Bases de Datos NoSQLBases de Datos NoSQL
Bases de Datos NoSQL
 
MongoDB
MongoDBMongoDB
MongoDB
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Fundamentos de las bases de datos
Fundamentos de las bases de datosFundamentos de las bases de datos
Fundamentos de las bases de datos
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 

Destacado

Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDB
Scalia
 
Filtrado con grep y cut
Filtrado con grep y cutFiltrado con grep y cut
Filtrado con grep y cut
ermendalirenda
 
Tema1 redhat
Tema1 redhatTema1 redhat
Tema1 redhatmmartinv
 
Introducción a NoSQL y MongoDB Webinar
Introducción a NoSQL y MongoDB WebinarIntroducción a NoSQL y MongoDB Webinar
Introducción a NoSQL y MongoDB Webinar
MongoDB
 
Mongo db
Mongo dbMongo db
Mongo dbUPCI
 
1 tutorial de mongo db
1 tutorial de mongo db1 tutorial de mongo db
1 tutorial de mongo db
.. ..
 
Shell exposición
Shell exposiciónShell exposición
Shell exposición
Fercho Junca
 
NoSql y MongoDB
NoSql y MongoDBNoSql y MongoDB
NoSql y MongoDB
David Gómez García
 
Modificación de registros comando sed
Modificación de registros   comando sedModificación de registros   comando sed
Modificación de registros comando sed
Pablo Macon
 
COMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASH
COMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASHCOMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASH
COMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASH
Universidad de Guayaquil
 
Rutas absolutas y relativas
Rutas absolutas y relativasRutas absolutas y relativas
Rutas absolutas y relativas
ermendalirenda
 
Linux Programacion en Shell
Linux Programacion en ShellLinux Programacion en Shell
Linux Programacion en Shell
Universidad de Guayaquil
 
Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)
Kevin Weil
 

Destacado (15)

Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDB
 
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4jBases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
 
Filtrado con grep y cut
Filtrado con grep y cutFiltrado con grep y cut
Filtrado con grep y cut
 
Tema1 redhat
Tema1 redhatTema1 redhat
Tema1 redhat
 
Introducción a NoSQL y MongoDB Webinar
Introducción a NoSQL y MongoDB WebinarIntroducción a NoSQL y MongoDB Webinar
Introducción a NoSQL y MongoDB Webinar
 
Mongo db
Mongo dbMongo db
Mongo db
 
1 tutorial de mongo db
1 tutorial de mongo db1 tutorial de mongo db
1 tutorial de mongo db
 
Shell exposición
Shell exposiciónShell exposición
Shell exposición
 
NoSql y MongoDB
NoSql y MongoDBNoSql y MongoDB
NoSql y MongoDB
 
Modificación de registros comando sed
Modificación de registros   comando sedModificación de registros   comando sed
Modificación de registros comando sed
 
COMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASH
COMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASHCOMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASH
COMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASH
 
Rutas absolutas y relativas
Rutas absolutas y relativasRutas absolutas y relativas
Rutas absolutas y relativas
 
Linux Programacion en Shell
Linux Programacion en ShellLinux Programacion en Shell
Linux Programacion en Shell
 
Graficos de control
Graficos de controlGraficos de control
Graficos de control
 
Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)
 

Similar a MongoDB Avanzado

Mi primera aplicación con MongoDB
Mi primera aplicación con MongoDBMi primera aplicación con MongoDB
Mi primera aplicación con MongoDB
Software Guru
 
Primeros pasos con aurelia
Primeros pasos con aureliaPrimeros pasos con aurelia
Primeros pasos con aurelia
Jose Angel Parreño Madrigal
 
CouchDB y el desarrollo de aplicaciones Android
CouchDB y el desarrollo de aplicaciones AndroidCouchDB y el desarrollo de aplicaciones Android
CouchDB y el desarrollo de aplicaciones Android
Ricardo Monagas Medina
 
MongoDB y bluemix
MongoDB y bluemixMongoDB y bluemix
MongoDB y bluemix
Victor Cuervo
 
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
José Manuel García García
 
Linq to sql 6
Linq to sql 6Linq to sql 6
Linq to sql 6
jcfarit
 
Análisis de Datos con MongoDB
Análisis de Datos con MongoDBAnálisis de Datos con MongoDB
Análisis de Datos con MongoDB
Alejandro Mancilla
 
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SolidQ
 
No SQL MSATS MongoDB | SolidQ Summit 2014
No SQL MSATS MongoDB | SolidQ Summit 2014No SQL MSATS MongoDB | SolidQ Summit 2014
No SQL MSATS MongoDB | SolidQ Summit 2014
SolidQ
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005oswchavez
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataforma
Luis Beltran
 
Adaptive BI Framework
Adaptive BI Framework Adaptive BI Framework
Adaptive BI Framework
SolidQ
 
10 cosas de rails que deberías saber
10 cosas de rails que deberías saber10 cosas de rails que deberías saber
10 cosas de rails que deberías saber
Carlos Sánchez Pérez
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
SolidQ
 
Dprn3 u3 a1_hehm
Dprn3 u3 a1_hehmDprn3 u3 a1_hehm
Dprn3 u3 a1_hehm
Hector Herrera
 
BigData - NoSQL
BigData -  NoSQL BigData -  NoSQL
BigData - NoSQL
Jose Alvarez Muguerza
 
Cuentas de Almacenamiento en Microsoft Azure con C#
Cuentas de Almacenamiento en Microsoft Azure con C#Cuentas de Almacenamiento en Microsoft Azure con C#
Cuentas de Almacenamiento en Microsoft Azure con C#
Víctor Moreno
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
Enrique Catala Bañuls
 
Revelando los secretos de twitter en México sg virtual
Revelando los secretos de twitter en México sg virtualRevelando los secretos de twitter en México sg virtual
Revelando los secretos de twitter en México sg virtual
Abel Alejandro Coronado Iruegas
 
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Abel Alejandro Coronado Iruegas
 

Similar a MongoDB Avanzado (20)

Mi primera aplicación con MongoDB
Mi primera aplicación con MongoDBMi primera aplicación con MongoDB
Mi primera aplicación con MongoDB
 
Primeros pasos con aurelia
Primeros pasos con aureliaPrimeros pasos con aurelia
Primeros pasos con aurelia
 
CouchDB y el desarrollo de aplicaciones Android
CouchDB y el desarrollo de aplicaciones AndroidCouchDB y el desarrollo de aplicaciones Android
CouchDB y el desarrollo de aplicaciones Android
 
MongoDB y bluemix
MongoDB y bluemixMongoDB y bluemix
MongoDB y bluemix
 
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
 
Linq to sql 6
Linq to sql 6Linq to sql 6
Linq to sql 6
 
Análisis de Datos con MongoDB
Análisis de Datos con MongoDBAnálisis de Datos con MongoDB
Análisis de Datos con MongoDB
 
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
 
No SQL MSATS MongoDB | SolidQ Summit 2014
No SQL MSATS MongoDB | SolidQ Summit 2014No SQL MSATS MongoDB | SolidQ Summit 2014
No SQL MSATS MongoDB | SolidQ Summit 2014
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataforma
 
Adaptive BI Framework
Adaptive BI Framework Adaptive BI Framework
Adaptive BI Framework
 
10 cosas de rails que deberías saber
10 cosas de rails que deberías saber10 cosas de rails que deberías saber
10 cosas de rails que deberías saber
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
 
Dprn3 u3 a1_hehm
Dprn3 u3 a1_hehmDprn3 u3 a1_hehm
Dprn3 u3 a1_hehm
 
BigData - NoSQL
BigData -  NoSQL BigData -  NoSQL
BigData - NoSQL
 
Cuentas de Almacenamiento en Microsoft Azure con C#
Cuentas de Almacenamiento en Microsoft Azure con C#Cuentas de Almacenamiento en Microsoft Azure con C#
Cuentas de Almacenamiento en Microsoft Azure con C#
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
 
Revelando los secretos de twitter en México sg virtual
Revelando los secretos de twitter en México sg virtualRevelando los secretos de twitter en México sg virtual
Revelando los secretos de twitter en México sg virtual
 
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
 

Último

Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
yuki22434
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
NajwaNimri1
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
COMPARATIVO DE SUBESTACIONES AIS VS GIS.
COMPARATIVO DE SUBESTACIONES AIS VS GIS.COMPARATIVO DE SUBESTACIONES AIS VS GIS.
COMPARATIVO DE SUBESTACIONES AIS VS GIS.
SERVANDOBADILLOPOLEN
 

Último (20)

Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
COMPARATIVO DE SUBESTACIONES AIS VS GIS.
COMPARATIVO DE SUBESTACIONES AIS VS GIS.COMPARATIVO DE SUBESTACIONES AIS VS GIS.
COMPARATIVO DE SUBESTACIONES AIS VS GIS.
 

MongoDB Avanzado

  • 2. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} $db.getuser(“victorcuervo”) { name: “Víctor Cuervo”, profession: “IT Architect. Santander Group”, socialinfo: { twitter:“@victor_cuervo”, website:“http://lineadecodigo.com”, linkedin:“https://es.linkedin.com/in/victorcuervo”, email:“vcuervo@gmail.com” }, hobbies: [“winetasting”,”programming”], programming_languages: [“java”,”mongodb”,”javascript”,”python”] }
  • 3. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Recursos de la presentación http://twitter.com/victor_cuervo https://github.com/victorcuervo/mongodb-codemotion http://www.slideshare.net/victorcuervo/
  • 5. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Índice MongoDB Nuevo en MongoDB 3.2 Consultas Avanzadas Índices Avanzados Modelado en MongoDB DBaaS y PaaS Tooling con MongoDB
  • 6. {twitter:”@victor_cuervo”} Una base de datos NOSQL llamada MongoDB ¿Todavía no sabes qué es MongoDB? 10 comandos sobre MongoDB Gartner 1
  • 7. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} ¿Todavía no sabes qué es MongoDB? Base de datos NOSQL orientada a documentos (BSON- JSON). Trabajo con modelos de datos flexibles Proporciona alto rendimiento y alta escalabilidad. Ofrece múltiples APIs sobre diferentes lenguajes de programación: java, python, shell, nodejs, go,… Maneja bases de datos, colecciones, campos, indices,…y no permite hacer un xxxxxx join.
  • 8. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} 10 comandos MongoDB db.ciudades.find({ciudad:”Madrid”}) db.ciudades.find({habitantes:{$lt:60000}) db.ciudades.find().sort({ciudad:1}).limit(10) db.ciudades.find({ciudad: {$in:[“Avila”,”Madrid”]}}) db.ciudades.insert({“ciudad”:”Avila”,”habitantes”:58915}) db.ciudades.update({“ciudad”:”Avila”},{$set:{habitantes:58915}}) db.ciudades.update({“ciudad”:”Avila”},{$set:{habitantes:58915}},{upsert:true}) db.ciudades.delete({ciudad:”Zamora”}) db.ciudades.update({ciudad:”Avila”, {$push : {monumentos: {$each: [“Murallas”, “San Vicente”, “La Santa”]}}}) db.ciudades.createIndex({ciudad:”1”})
  • 9. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Cuadrante Mágico Gartner Cuadrante sobre bases de datos operacionales. MongoDB dentro del cuadrante de challengers. (*) https://www.mongodb.com/blog/post/gartner-positions- mongodb-challenger-magic-quadrant-operational-database- management
  • 10. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Si te has quedado con dudas… Manual MongoDB https://docs.mongodb.org/manual/ NOSQL: Primeros pasos en MongoDB http://www.slideshare.net/victorcuervo/nosql-primeros-pasos-en-mongodb-codemotion Ejemplos de código en MongoDB http://lineadecodigo.com/categoria/mongodb/
  • 11. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Antes de empezar… Colección Ejemplo { "_id" : ObjectId("565914732c23d80f730a1f49"), "gender" : "M", "name" : "Dennis Rogers", "username" : "drogers1", "birthday" : "06/11/1957", "email" : "drogers1@issuu.com", "social" : { "facebook" : "drogers1", "twitter" : "drogers1", "linkedin" : "drogers1" }, "description" : "Proin interdum mauris non ligula….”, "hobbies" : [ "tv", "cine", "viajes" ] }
  • 12. {twitter:”@victor_cuervo”} Novedades sobre MongoDB 3.2 Nuevos engines Validación de documentos MongoDB y RealTime MongoDB Compass API de Métricas 2 Todo el detalle de MongoDB 3.2 en https://www.mongodb.com/mongodb-3.2?jmp=docs
  • 13. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Nuevos Engines Se añaden nuevos engines de almacenamiento. Las capacidades de la plataforma se pueden extender atendiendo al tipo de carga que tengamos para cada escenario: Almacenamiento en memoria para real-time Almacenamiento de datos securizados Uso de WiredTiger como engine por defecto.
  • 14. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Nuevos Engines: Escenarios
  • 15. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Validación de documentos En MongoDB 3.2 se puede personalizar si queremos forzar la validación del documento: estructura, tipos de datos, rangos,.. Ayuda al gobierno de los schemas y datos almacenados.
  • 16. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Validación de documentos db.runCommand({ collMod: "contacts", validator: { $and: [ {year_of_birth: {$lte: 1994}}, {$or: [ {phone: { $type: "string" }}, {email: { $type: "string" }} ]}] }})
  • 17. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} MongoDB y Real Time El BI Connector permite integrar MongoDB con herramientas de visualización como Tableau, QlikView,… “El 90% de los datos nunca son analizados y el 60% de los datos pierde el valor milisegundos después de ser generado”
  • 18. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} MongoDB Compass MongoDB Compass es un GUI que permite explorar los datos de forma visual sin tirar una consulta.
  • 19. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} API de Métricas MongoDB 3.2 ofrece un API que expone las métricas de rendimiento de las queries para que puedan ser consumidas por herramientas APM (Application Performance Monitoring).
  • 20. {twitter:”@victor_cuervo”} Consultas Avanzadas en MongoDB Covered Queries Text Search Expresiones Regulares Bulking Capped Collection Two Phase Commit 3
  • 21. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Covered Queries Las covered queries son aquellas que: • todos los campos de la query son parte del índice y • todos los campos devueltos por una query están en el mismo índice La búsqueda de MongoDB solo se realizará por el índice y no a través de los documentos. Como los índices están en memoria, la recuperación de información es muy rápida.
  • 22. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Ejemplo de Covered Query { "_id": ObjectId("53402597d852426020000002"), "birthday": “11/18/1977”, "gender": "M", "name": “Víctor Cuervo", "username": “victorcuervo" } # Índice db.users.createIndex({gender:1,username:1}) #Consulta db.users.find({gender:"M"},{username:1,_id:0})
  • 23. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Text Search MongoDB soporta índices sobre elementos de texto. De esa manera podemos realizar búsquedas de cadenas de texto. Para poder utilizar Text Search en MongoDB deberemos de: • Activar las búsquedas de texto mediante el parámetro searchTextEnabled. • Crear un índice de texto • Realizar la consulta.
  • 24. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Ejemplo de Text Search db.adminCommand({setParameter:true,textSearchEnabled:true}) { "_id": ObjectId("53402597d852426020000002"), "username": “raulanton”, “description”: “Apasionado de la lectura de novelas históricas…”, “hobbies”: [“lectura”,”novelas”,”cine”,”naturaleza”] } db.posts.createIndex({description:"text"}) db.posts.createIndex({description:"text"}, {default_language:spanish}) db.posts.find({$text:{$search:"novelas"}})
  • 25. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Ejemplo de Text Search #Consulta de texto db.posts.find({$text:{$search:”novelas”}}) # Más nos vale tener el índice Error: error: { "waitedMS" : NumberLong(0), "ok" : 0, "errmsg" : "text index required for $text query", "code" : 27 }
  • 26. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Expresiones Regulares Podemos realizar búsquedas por patrones mediante expresiones regulares. MongoDB nos proporciona el operador $regexp Se pueden indicar parámetro de las búsquedas, por ejemplo si queremos que sean “case sensitive”.
  • 27. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Ejemplo de Expresiones Regulares { "_id": ObjectId("53402597d852426020000002"), "username": “raulanton”, “name”: “Raúl Antón”, “description”: “Apasionado de la lectura de novelas históricas…”, “hobbies”: [“lectura”,”novelas”,”cine”,”naturaleza”] } db.posts.find({name:{$regex:”Ra”}}) db.posts.find({name:/^R/}) db.posts.find({contenido:{$regex:”ra",$options:"$i"}})
  • 28. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Bulking MongoDB permite ejecutar operaciones en batch. De esta manera nos devuelve un documento resultado de la ejecución de todas las operaciones. De forma ordenada o desordenada: initializeOrderedBulkOp() initializeUnOrderedBulkOp()
  • 29. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Ejemplo de bulking bulk = db.products.initializeOrderedBulkOp() bulk.insert({name:"A",items:10}) bulk.insert({name:"B",items:15}) bulk.find({name:"A"}).update({ $inc: { items : 1 }}) bulk.find({name:"B"}).removeOne() bulk.execute()
  • 30. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Capped Collection Son colecciones de tamaño fijo que soportan un alto throughput de operaciones. Mantienen el orden de inserción, por lo cual no necesitan un índice. Funcionan como un buffer circular, de tal manera que cuando se llena se eliminan los documentos más antiguos.
  • 31. MADRID · NOV 27-28 · 2015 Ejemplo de Capped Collection # Crear una Capped Collection db.createCollection( "log", { capped: true, size: 100000 } ) # Validar si es una Capped Collection db.log.isCapped() #Recuperar los documento en orden inverso db.log.find().sort( { $natural: -1 } )
  • 32. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Two Phase Commit Las operaciones en MongoDB son atómicas sobre un solo documento. La capacidad de tener documentos anidados junto con la atomicidad sería un enfoque para los antiguos modelos “two phase commit”. En el caso de que haya que tratar varios documentos de forma transaccional hay que implementar dicha transaccionalidad en la aplicación.
  • 33. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Two Phase Commit Pattern Consideramos el escenario en el que vamos a transferir desde la cuenta A a la cuenta B una cantidad de dinero. Partimos de dos colecciones: cuentas - accounts transacciones - transacctions
  • 34. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Two Phase Commit Pattern 1. Inicializamos las cuentas db.accounts.insert( [ { _id: "A", balance: 1000, pendingTransactions: [] }, { _id: "B", balance: 1000, pendingTransactions: [] } ] )
  • 35. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Two Phase Commit Pattern 2. Creamos una transacción db.transactions.insert( { _id: 1, source: “A", destination: “B", value: 100, state: “initial", lastModified: new Date() })
  • 36. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Two Phase Commit Pattern 3. Buscamos una transacción para ejecutar var t = db.transactions.findOne( { state: "initial" } ) db.transactions.update( { _id: t._id, state: "initial" }, { $set: { state: "pending" }, $currentDate: { lastModified: true } } )
  • 37. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Two Phase Commit Pattern 4. Movimiento en cuenta y transacciones Pendientes db.accounts.update( { _id: t.source, pendingTransactions: { $ne: t._id } }, { $inc: { balance: -t.value }, $push: { pendingTransactions: t._id } } ) db.accounts.update( { _id: t.destination, pendingTransactions: { $ne: t._id } }, { $inc: { balance: t.value }, $push: { pendingTransactions: t._id } } )
  • 38. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Two Phase Commit Pattern 5. Transacciones Aplicadas db.transactions.update( { _id: t._id, state: "pending" }, { $set: { state: "applied" }, $currentDate: { lastModified: true } } )
  • 39. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Two Phase Commit Pattern 6. Eliminamos las pendientes de las cuentas db.accounts.update( { _id: t.source, pendingTransactions: t._id }, { $pull: { pendingTransactions: t._id } } ) db.accounts.update( { _id: t.destination, pendingTransactions: t._id }, { $pull: { pendingTransactions: t._id } } )
  • 40. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Two Phase Commit Pattern 7. Transacción ejecutada db.transactions.update( { _id: t._id, state: "applied" }, { $set: { state: "done" }, $currentDate: { lastModified: true } } )
  • 41. Y luego me dices que el Cobol no mola…
  • 42. {twitter:”@victor_cuervo”} Índices Avanzados en MongoDB Índices multiclave Índices sobre textos Índices TTL 4
  • 43. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Índices Multiclave Son los índices que se aplican cuando el campo es un array. Se crea una clave de índice por cada uno de los elementos que componen el array. No se pueden crear índices multiclave compuestos y tampoco se puede especificar un índice multiclave como sharing key. db.coll.createIndex( { <field>: < 1 or -1 > } )
  • 44. MADRID · NOV 27-28 · 2015 Índices sobre textos MongoDB cuenta con soporte para índices de texto para facilitar búsquedas de contenido. Soporta “stopwords” para ciertos idiomas. db.users.createIndex( { description: "text" } ) # Para buscar por todos los campos db.users.createIndex( { "$**": "text" } )
  • 45. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Índices TTL MongoDB permite que haya índices que tengan un tiempo de vida. Pasado ese tiempo de vida, expiran. db.eventlog.createIndex( { "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 } )
  • 47. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} One-To-One (1:1) Las relaciones 1:1 pueden ser modeladas de dos formas en MongoDB: insertar la relación en un único documento o bien tener un link al otro documento. { name: “Víctor Cuervo", age: 38 } { street: Alcala 45", city: "Madrid" }
  • 48. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} One-To-One (1:1) Embedding { name: “Víctor Cuervo", age: 38, address: { street: “Alcala, 45", city: "Madrid" } } Linking { _id: 1, name: “Víctor Cuervo", age: 38 } { user_id: 1, street: “Alcala, 45", city: "Madrid" }
  • 49. MADRID · NOV 27-28 · 2015 One-To-Many (1:N) Las relaciones 1:N pueden ser modeladas de tres formas en MongoDB: insertar la relación en un único documento, link al otro documento o bucketing.
  • 50. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} One-To-Many (1:N) { title: “Línea de Código", url: “http://lineadecodigo.com", text: “Aprende a Programar" } { blog_entry_id: 1, name: “Daniel Hernandez", created_on: ISODate("2014-01-01T10:01:22Z"), comment: “Me gusta tu blog" } { blog_entry_id: 1, name: “Fran Honrrubia", created_on: ISODate("2014-01-01T11:01:22Z"), comment: “Gran trabajo" } Blog Comentarios
  • 51. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} One-To-Many (1:N). Embeding { title: “Línea de Código", url: "http://lineadecodigo.com", text: “Aprende a Programar", comments: [{ name: “Daniel Hernandez", created_on: ISODate("2014-01-01T10:01:22Z"), comment: “Me gusta tu blog" }, { name: “Fran Honrubia", created_on: ISODate("2014-01-01T11:01:22Z"), comment: “Gran trabajo" }] } El contenido insertado se crea dentro de un array. Hay que tener cuidado con el tamaño del array y no sobrepasar los 16Mb. A MongoDB le cuesta calcular el padding. Problemas de performance.
  • 52. MADRID · NOV 27-28 · 2015 One-To-Many (1:N). Linking { blog_entry_id: 1, name: “Daniel Hernandez", created_on: ISODate("2014-01-01T10:01:22Z"), comment: “Me gusta tu blog" } { blog_entry_id: 1, name: “Fran Honrubia", created_on: ISODate("2014-01-01T11:01:22Z"), comment: “Gran trabajo" } Hay que hacer tantas lecturas a la base de datos como documentos tengamos enlazados.
  • 53. MADRID · NOV 27-28 · 2015 One-To-Many (1:N). Bucketing { blog_entry_id: 1, page: 1, count: 50, comments: [{ name: “Daniel Hernandez", created_on: ISODate("2014-01-01T10:01:22Z"), comment: “Me gusta tu blog" }, ...] } { blog_entry_id: 1, page: 2, count: 1, comments: [{ name: “Fran Honrubia", created_on: ISODate("2014-01-01T11:01:22Z"), comment: “Gran trabajo" }] } Es una mezcla entre embedding y linking. Se divide en contenedores con un tamaño y se inserta el comentario en el contenedor que toca. Tiene que tener algún concepto de división como fechas,….
  • 54. MADRID · NOV 27-28 · 2015 Many-To-Many (N:N) Las relaciones N:N se modelan mediante técnicas de embedding. En el caso de que haya una de las partes predominantes se modelaría hacía un solo sentido.
  • 55. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Many-To-Many (N:N). Two Ways { _id: 1, name: "Peter Standford", books: [1, 2] } { _id: 2, name: "Georg Peterson", books: [2] } { _id: 1, title: "A tale of two people", categories: ["drama"], authors: [1, 2] } { _id: 2, title: "A tale of two space ships", categories: ["scifi"], authors: [1] }
  • 56. MADRID · NOV 27-28 · 2015 Many-To-Many (N:N). One Way { _id: 1, name: "drama" } { _id: 1, title: "A tale of two people", categories: [1], authors: [1, 2] }
  • 57. {twitter:”@victor_cuervo”} DBaaS y PaaS: MongoDB en Cloud • MongoLab • MongoDB y Docker • MongoDB en PaaS 6
  • 58. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} MongoLab MongoLab es un BDaaS que nos permite aprovisionarnos bases de datos de MongoDB de forma dinámica en cloud de una forma sencilla. Funciona en formato PaaS que funciona sobre Google, AWS y Azure. $ mongo ds047037.mongolab.com:47037/<db> -u <dbuser> -p <dbpassword> $ mongodb://<dbuser>:<dbpassword>@ds047037.mongolab.com:47037/<db>
  • 59. MADRID · NOV 27-28 · 2015 Características MongoLab MongoLab nos permite de forma sencilla: • Crear bases de datos dinámicamente. • Monitorización y alertas 24x7. • GUI para operaciones básicas. • Análisis de índices y performance. • Establecer seguridad en la conexión. • Soporte para APIs de diferentes lenguajes.
  • 60. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} MongoLab
  • 61. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} MongoDB y Docker MongoDB ya está “dockerizado”. Disponible en el Docker Hub Registry (https://hub.docker.com/_/mongo/) $ docker run --name some-mongo -d mongo $ docker run -it --link some-mongo:mongo --rm mongo sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"' Crear una imagen Docker con MongoDB https://docs.docker.com/engine/examples/mongodb/
  • 62. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} MongoDB en PaaS MongoDB está disponible en diferentes entornos PaaS: BlueMix, Heroku, OpenShift,…
  • 64. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Herramientas de tooling para MongoDB Existen múltiples herramientas de tooling alrededor de MongoDB: GUI, Conectores, Monitorización, Performance Tuning, Mejoras del Shell, Manejo para JSON,… Hay un listado extenso en http://mongodb-tools.com/
  • 65. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Mockaroo Herramienta online que nos permite crear colecciones JSON. • Tipos de datos estándar: datos sobre personas, salud, monetarios, colores, • Permite crear subdocumentos y arrays • Trabajar con expresiones regulares • Dispone de un API para invocarlo de forma externa. https://www.mockaroo.com (*) Gratuito hasta 1.000 filas.
  • 66. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Mockaroo
  • 67. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Mongo Hacker Permite mejorar el Shell de MongoDB: • Añadir colores • Extensiones al API Shell • Ayudas Framework Agregación https://tylerbrock.github.io/mongo -hacker/
  • 68. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Recursos Nuevo en MongoDB 3.2 Capped collection Nuevo API de Bulking Two Phase Commit Modeling MongoDB Schema MongoLab Mockaroo
  • 69. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Recursos de la presentación http://twitter.com/victor_cuervo https://github.com/victorcuervo/mongodb-codemotion http://www.slideshare.net/victorcuervo/
  • 70. MADRID · NOV 27-28 · 2015{twitter:”@victor_cuervo”} Preguntas