SlideShare una empresa de Scribd logo
1 de 35
Mallorca #MongoDB User Group
http://www.meetup.com/Mallorca-MongoDB-User-Group/
Introducción a MongoDB
@emiliotorrens | www.emiliotorrens.com
Agenda Presentaciones.
Que es MongoDB ?
Funciona?
Que ventajas nos ofrece ?
Instalación:
Ubuntu
Windows
En la nube
Ejemplos:
C#
Python
Que es MongoDB?
MongoDB es un sistema de base de datos multiplataforma orientado a documentos, de alto rendimiento y de
esquema libre, está licenciado como GNU AGPL 3.0, de modo que se puede descargar gratuitamente desde su sitio
web:
http://www.mongodb.org/downloads
Las características mas destacadas de MongoDB son su velocidad y su sencillo, pero potente, sistema de consulta
de datos, en resumen es un sistema de base de datos que tiene el equilibrio entre rendimiento y funcionalidad en el
que podemos realizar casi todas las consultas que utilizaríamos en un sistema relacional pero sin sacrificar el
rendimiento.
Funciona?
http://www.mongodb.org/display/DOCS/Production+Deployments
Que ventajas nos ofrece?
• Es gratuito y es multiplataforma
• Es rápida y es funcional
• Fácil de probar
• Fácil de entender
• Escalabilidad, Replicación y Alta Disponibilidad
• Formación
• Soporte Comercial
Es gratuito y es multiplataforma
MongoDB esta disponible para descarga gratuita desde su sitio web:
http://www.mongodb.org/download
Esta disponible para todas las plataformas:
Que ventajas nos ofrece?
• Es gratis y es multiplataforma
• Es rápido y es funcional
• Fácil de probar
• Fácil de entender
• Escalabilidad, Replicación y Alta Disponibilidad
• Formación
• Soporte Comercial
Es rápido y es funcional
Normalmente tenemos que sacrificar rendimiento por funcionalidad o viceversa, incluso usar dos sistemas (RDBMS
+ Cache) redundando los datos, MongoDB alcanza el equilibrio entre rendimiento y funcionalidad.
Que ventajas nos ofrece?
• Es gratis y es multiplataforma
• Es rápida y es funcional
• Fácil de probar
• Fácil de entender
• Escalabilidad, Replicación y Alta Disponibilidad
• Formación
• Soporte Comercial
Fácil de probar: Una instancia se levanta en minutos
Podemos tener una instancia de mongo levantada en cuestión de minutos, solo hemos de bajar los ejecutables,
descomprimirlos, crear un directorio de datos y arrancar la instancia con:
mongod --dbpath c:data
Fácil de probar: Drivers para multitud de lenguajes
MongoDB tiene drivers mantenidos para:
• C
• C++
• Erlang
• Haskell
• Java
• Javascript
• .NET (C# F#, PowerShell, etc)
• Node.js
• Perl
• PHP
• Python
• Ruby
• Scala
Ademas hay una larga lista de Drivers y Herramientas mantenidos por la Comunidad:
http://www.mongodb.org/display/DOCS/Drivers
Que ventajas nos ofrece?
• Es gratis y es multiplataforma
• Es rápida y es funcional
• Fácil de probar
• Fácil de entender
• Escalabilidad, Replicación y Alta Disponibilidad
• Formación
• Soporte Comercial
Fácil de Entender: Conceptos Conocidos
Bases de Datos Bases de Datos
Tablas Colecciones
Registros Documentos
Fácil de Entender: Documento = Registro/Registros
> db.persons.findOne()
{
"_id" : ObjectId("5062b9a0fe2d230a58c5c104"),
"Name" : "Antonio Gomez",
"Age" : 30,
"Chidls" : [
{
"Name" : "Pedro Gomez",
"Age" : 4
},
{
"Name" : "Antonio Gomez",
"Age" : 11
}
]
}
Que es un documento?
Fácil de Entender: Funcionalidades similares
Consultas dinámicas (1/3):
SELECT * FROM PERSONS
db.persons.find()
SELECT * FROM PERSONS WHERE NAME = “Antonio Gomez”
db.persons.find({Name:"Antonio Gomez"})
SELECT AGE FROM PERSONS WHERE NAME = “Antonio Gomez” AND AGE = 30
db.persons.find({Name:"Antonio Gomez“, Age:30}, {Age:true})
Fácil de Entender: Funcionalidades similares
Consultas dinámicas (2/3):
SELECT * FROM PERSONS WHERE NAME LIKE ‘%G%’
db.persons.find({Name:“/G/"})
SELECT * FROM PERSONS WHERE NAME LIKE ‘G%’
db.persons.find({Name:“^G/"})
SELECT * FROM PERSONS ORDER BY AGE
db.persons.find().sort({Age:1})
Fácil de Entender: Funcionalidades similares
Consultas dinámicas (3/3):
SELECT DISTINCT NAME FROM PERSONS
db.persons.distinct("Name")
SELECT * FROM PERSONS LIMIT 10 SKIP 10
db.persons.find().limit(10).skip(10)
SELECT * FROM PERSONS WHERE AGE > 25 AND <= 45
db.persons.find({'Age': {$gt:25, $lte:45}})
Fácil de Entender: Funcionalidades similares
Consultas dinámicas, operadores:
$gt $gte $lt $lte $ne $in $nin $mod $all
$size $exists $type $elemMatch $not $where
$nor $or $and …
http://www.mongodb.org/display/DOCS/Querying
http://www.mongodb.org/display/DOCS/Advanced+Queries
Fácil de Entender: Funcionalidades similares
Índices:
Ascendente
db.persons.ensureIndex({Age: 1})
Descendente
db.persons.ensureIndex({Age: -1})
Unico
db.persons.ensureIndex({Name: 1}, {unique: true})
Fácil de Entender: Tipos de Datos similares
Array, Binary, Boolean, DateTime,
DB Reference, Embedded Object,
Integer, Null, ObjectId, RegExp,
String, Symbol, Timestamp, Long,
Decimal …
Fácil de Entender: Funcionalidades similares
Relaciones, las de toda la vida:
db.persons.insert({Name:‘Pepito Perez‘, Age:35});
var person = db.persons.findOne({Name:‘Pepito Perez '});
db.childs.insert({
Name : ‘Pepito Perez Junior' ,
Age : 7,
person_id : person._id
});
Fácil de Entender: Funcionalidades similares
Relaciones, documentos embebidos:
db.persons.insert(
{
Name:‘Pepito Perez‘,
Age: 35,
Childs: [{Name:’Pepito Perez Junior’,Age:7}]
}
);
Usa los documentos embebidos cuando los datos siempre se muestren juntos.
No se puede filtrar parte de un documento embebido.
Fácil de Entender: Funcionalidades Similares
Agregación, ejecución de código en el servidor:
• Aggregation Framework
• Count
• Distinct
• Group
• MapReduce
http://www.mongodb.org/display/DOCS/Aggregation
Que ventajas nos ofrece?
• Es gratis y es multiplataforma
• Es rápida y es funcional
• Fácil de probar
• Fácil de entender
• Escalabilidad, Replicación y Alta Disponibilidad
• Formación
• Soporte Comercial
Escalabilidad, Replicación y Alta Disponibilidad
• Replica Sets
• http://www.mongodb.org/display/DOCS/Replica+Sets
• Maestro / Esclavo (en desuso)
• http://www.mongodb.org/display/DOCS/Master+Slave
• Auto Sharding
• http://www.mongodb.org/display/DOCS/Sharding
Que ventajas nos ofrece?
• Es gratis y es multiplataforma
• Es rápida y es funcional
• Fácil de probar
• Fácil de entender
• Escalabilidad, Replicación y Alta Disponibilidad
• Formación
• http://education.10gen.com/
• http://groups.google.com/group/mongodb-user
• irc://irc.freenode.net/#mongodb
• Soporte Comercial
• http://www.10gen.com/
Que ventajas nos ofrece?
• Es gratis y es multiplataforma
• Es rápida y es funcional
• Fácil de probar
• Fácil de entender
• Escalabilidad, Replicación y Alta Disponibilidad
• Formación
• Soporte Comercial
• http://www.10gen.com/
Fácil de Instalar: Instalación Ubuntu
La instalación es realmente sencilla, simplemente hay que añadir el repositorio de 10gen e instalarlo con apt-get.
Para añadir el repositorio e instalar MongoDB:
1. Importamos la key GPC publica de 10gen con:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
2. Añadimos esta linea a nuestra lista de repositories, que esta en /etc/apt/sources.list:
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
3. Instalamos con:
1. sudo apt-get update
2. sudo apt-get install mongodb-10gen
4. Arrancamos el servidor con:
sudo service mongodb start
Listo, ya tenemos el servidor de MongoDB instalado y funcionando.
Fácil de Instalar: Instalación Windows
La instalación sobre Windows es tan simple como bajar un Zip y descomprimirlo en un directorio.
Una vez tenemos los binarios de MongoDB descomprimidos en un directorio podemos instalarlo como un servicio
de Windows o correrlo en la consola:
1. Correrlo en la consola:
1. Creamos una carpeta donde se alojaran los datos (ejem c:data)
2. Ejecutamos el mongod pasandole la carpeta:
mongod --dbpath c:data
2. Instalarlo como servicio:
1. Creamos una carpeta donde se alojaran los datos (ejem c:data)
2. Creamos un fichero de log (ejem: cdataloglog.txt)
3. Ejecutamos el mongod pasandole la carpeta, el log y la opcion de servicio:
mongod --dbpath c:data --logpath cdataloglog.txt --service
4. Buscamos el servicio Mongo DB en los servicios de windows y lo iniciamos
Listo, ya tenemos el servidor de MongoDB instalado y funcionando.
Sin Instalación: MongoDB en la nube
Hay varios proveedores que te ofrecen instancias gratuitas de MongoDB en la nube de manera que puedas hacer
pruebas sin necesidad de tener instalada ninguna instancia de MongoDB.
• Mongolab te ofrece una instancia gratuita de hasta 500 megas:
• https://mongolab.com/home
• Mongohq te ofrece una instancia gratuita de hasta 512 megas:
• https://www.mongohq.com
Estas instancias gratuitas son mas que suficientes para las pruebas de desarrollo e incluso para pequeñas
aplicaciones.
Ejemplos: C#
https://github.com/emiliotorrens/mongodb-drivers-samples/tree/master/csharp
Ejemplos: Python
https://github.com/emiliotorrens/mongodb-drivers-samples/tree/master/python
Referencias
• MongoDB: The Definitive Guide
• 10gen presentations
• Why MongoDB is Awesome
Próximos Meetups
• Instalar y consumir un Replica Set
• Objects Mappings para MongoDB
• MongoDB y Ruby on Rails
Mallorca #MongoDB User Group
http://www.meetup.com/Mallorca-MongoDB-User-Group/
Gracias por venir ;)
@emiliotorrens | www.emiliotorrens.com

Más contenido relacionado

La actualidad más candente (17)

Datos personales
Datos personalesDatos personales
Datos personales
 
Dropbox
DropboxDropbox
Dropbox
 
Buenobueno
BuenobuenoBuenobueno
Buenobueno
 
Dropbox
DropboxDropbox
Dropbox
 
DROPBOX
DROPBOXDROPBOX
DROPBOX
 
Trabajo practico n°1 2013
Trabajo practico n°1 2013Trabajo practico n°1 2013
Trabajo practico n°1 2013
 
Dropbox
DropboxDropbox
Dropbox
 
Mis búsquedas google
Mis búsquedas googleMis búsquedas google
Mis búsquedas google
 
Protocolo HTTP
Protocolo HTTPProtocolo HTTP
Protocolo HTTP
 
Protocolo http
Protocolo httpProtocolo http
Protocolo http
 
Almacemamiento en dropbox
Almacemamiento en dropboxAlmacemamiento en dropbox
Almacemamiento en dropbox
 
Caracteristicas del dropbox
Caracteristicas del dropboxCaracteristicas del dropbox
Caracteristicas del dropbox
 
Dropbox- alfaro-G3
Dropbox- alfaro-G3Dropbox- alfaro-G3
Dropbox- alfaro-G3
 
Dropbox
DropboxDropbox
Dropbox
 
Dropbox
DropboxDropbox
Dropbox
 
Dropbox presentacion
Dropbox presentacion Dropbox presentacion
Dropbox presentacion
 
4444444444444444444444444444444
44444444444444444444444444444444444444444444444444444444444444
4444444444444444444444444444444
 

Similar a Mallorca MUG: Introducción a MongoDB

Similar a Mallorca MUG: Introducción a MongoDB (20)

Que es MongoDB
Que es MongoDBQue es MongoDB
Que es MongoDB
 
Semana 3 MONGODB conceptos básicos NOSQL
Semana 3   MONGODB conceptos básicos NOSQLSemana 3   MONGODB conceptos básicos NOSQL
Semana 3 MONGODB conceptos básicos NOSQL
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDB
 
1 tutorial de mongo db
1 tutorial de mongo db1 tutorial de mongo db
1 tutorial de mongo db
 
Instalacion mongo db_2.4.9
Instalacion mongo db_2.4.9Instalacion mongo db_2.4.9
Instalacion mongo db_2.4.9
 
Sgbd mongodb
Sgbd   mongodbSgbd   mongodb
Sgbd mongodb
 
FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017
 
Manual de instalacion de Mongo db
Manual de instalacion de Mongo dbManual de instalacion de Mongo db
Manual de instalacion de Mongo db
 
NoSQL, Mongo DB & Google Maps
NoSQL, Mongo DB & Google MapsNoSQL, Mongo DB & Google Maps
NoSQL, Mongo DB & Google Maps
 
Mongo db
Mongo dbMongo db
Mongo db
 
Maual de instalacion mongodb
Maual de instalacion mongodbMaual de instalacion mongodb
Maual de instalacion mongodb
 
CodeIgniter
CodeIgniterCodeIgniter
CodeIgniter
 
Presentacion 3 archivos2
Presentacion 3 archivos2Presentacion 3 archivos2
Presentacion 3 archivos2
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 
Curso introductorio a Raptor.js con Node.js
Curso introductorio a Raptor.js con Node.jsCurso introductorio a Raptor.js con Node.js
Curso introductorio a Raptor.js con Node.js
 
Base de datos raquel
Base de datos raquelBase de datos raquel
Base de datos raquel
 
Jean piere sarumo mongodb
Jean piere sarumo mongodbJean piere sarumo mongodb
Jean piere sarumo mongodb
 
MongoDB
MongoDBMongoDB
MongoDB
 
Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC
 

Último

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Último (13)

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Mallorca MUG: Introducción a MongoDB

  • 1. Mallorca #MongoDB User Group http://www.meetup.com/Mallorca-MongoDB-User-Group/ Introducción a MongoDB @emiliotorrens | www.emiliotorrens.com
  • 2. Agenda Presentaciones. Que es MongoDB ? Funciona? Que ventajas nos ofrece ? Instalación: Ubuntu Windows En la nube Ejemplos: C# Python
  • 3. Que es MongoDB? MongoDB es un sistema de base de datos multiplataforma orientado a documentos, de alto rendimiento y de esquema libre, está licenciado como GNU AGPL 3.0, de modo que se puede descargar gratuitamente desde su sitio web: http://www.mongodb.org/downloads Las características mas destacadas de MongoDB son su velocidad y su sencillo, pero potente, sistema de consulta de datos, en resumen es un sistema de base de datos que tiene el equilibrio entre rendimiento y funcionalidad en el que podemos realizar casi todas las consultas que utilizaríamos en un sistema relacional pero sin sacrificar el rendimiento.
  • 5. Que ventajas nos ofrece? • Es gratuito y es multiplataforma • Es rápida y es funcional • Fácil de probar • Fácil de entender • Escalabilidad, Replicación y Alta Disponibilidad • Formación • Soporte Comercial
  • 6. Es gratuito y es multiplataforma MongoDB esta disponible para descarga gratuita desde su sitio web: http://www.mongodb.org/download Esta disponible para todas las plataformas:
  • 7. Que ventajas nos ofrece? • Es gratis y es multiplataforma • Es rápido y es funcional • Fácil de probar • Fácil de entender • Escalabilidad, Replicación y Alta Disponibilidad • Formación • Soporte Comercial
  • 8. Es rápido y es funcional Normalmente tenemos que sacrificar rendimiento por funcionalidad o viceversa, incluso usar dos sistemas (RDBMS + Cache) redundando los datos, MongoDB alcanza el equilibrio entre rendimiento y funcionalidad.
  • 9. Que ventajas nos ofrece? • Es gratis y es multiplataforma • Es rápida y es funcional • Fácil de probar • Fácil de entender • Escalabilidad, Replicación y Alta Disponibilidad • Formación • Soporte Comercial
  • 10. Fácil de probar: Una instancia se levanta en minutos Podemos tener una instancia de mongo levantada en cuestión de minutos, solo hemos de bajar los ejecutables, descomprimirlos, crear un directorio de datos y arrancar la instancia con: mongod --dbpath c:data
  • 11. Fácil de probar: Drivers para multitud de lenguajes MongoDB tiene drivers mantenidos para: • C • C++ • Erlang • Haskell • Java • Javascript • .NET (C# F#, PowerShell, etc) • Node.js • Perl • PHP • Python • Ruby • Scala Ademas hay una larga lista de Drivers y Herramientas mantenidos por la Comunidad: http://www.mongodb.org/display/DOCS/Drivers
  • 12. Que ventajas nos ofrece? • Es gratis y es multiplataforma • Es rápida y es funcional • Fácil de probar • Fácil de entender • Escalabilidad, Replicación y Alta Disponibilidad • Formación • Soporte Comercial
  • 13. Fácil de Entender: Conceptos Conocidos Bases de Datos Bases de Datos Tablas Colecciones Registros Documentos
  • 14. Fácil de Entender: Documento = Registro/Registros > db.persons.findOne() { "_id" : ObjectId("5062b9a0fe2d230a58c5c104"), "Name" : "Antonio Gomez", "Age" : 30, "Chidls" : [ { "Name" : "Pedro Gomez", "Age" : 4 }, { "Name" : "Antonio Gomez", "Age" : 11 } ] } Que es un documento?
  • 15. Fácil de Entender: Funcionalidades similares Consultas dinámicas (1/3): SELECT * FROM PERSONS db.persons.find() SELECT * FROM PERSONS WHERE NAME = “Antonio Gomez” db.persons.find({Name:"Antonio Gomez"}) SELECT AGE FROM PERSONS WHERE NAME = “Antonio Gomez” AND AGE = 30 db.persons.find({Name:"Antonio Gomez“, Age:30}, {Age:true})
  • 16. Fácil de Entender: Funcionalidades similares Consultas dinámicas (2/3): SELECT * FROM PERSONS WHERE NAME LIKE ‘%G%’ db.persons.find({Name:“/G/"}) SELECT * FROM PERSONS WHERE NAME LIKE ‘G%’ db.persons.find({Name:“^G/"}) SELECT * FROM PERSONS ORDER BY AGE db.persons.find().sort({Age:1})
  • 17. Fácil de Entender: Funcionalidades similares Consultas dinámicas (3/3): SELECT DISTINCT NAME FROM PERSONS db.persons.distinct("Name") SELECT * FROM PERSONS LIMIT 10 SKIP 10 db.persons.find().limit(10).skip(10) SELECT * FROM PERSONS WHERE AGE > 25 AND <= 45 db.persons.find({'Age': {$gt:25, $lte:45}})
  • 18. Fácil de Entender: Funcionalidades similares Consultas dinámicas, operadores: $gt $gte $lt $lte $ne $in $nin $mod $all $size $exists $type $elemMatch $not $where $nor $or $and … http://www.mongodb.org/display/DOCS/Querying http://www.mongodb.org/display/DOCS/Advanced+Queries
  • 19. Fácil de Entender: Funcionalidades similares Índices: Ascendente db.persons.ensureIndex({Age: 1}) Descendente db.persons.ensureIndex({Age: -1}) Unico db.persons.ensureIndex({Name: 1}, {unique: true})
  • 20. Fácil de Entender: Tipos de Datos similares Array, Binary, Boolean, DateTime, DB Reference, Embedded Object, Integer, Null, ObjectId, RegExp, String, Symbol, Timestamp, Long, Decimal …
  • 21. Fácil de Entender: Funcionalidades similares Relaciones, las de toda la vida: db.persons.insert({Name:‘Pepito Perez‘, Age:35}); var person = db.persons.findOne({Name:‘Pepito Perez '}); db.childs.insert({ Name : ‘Pepito Perez Junior' , Age : 7, person_id : person._id });
  • 22. Fácil de Entender: Funcionalidades similares Relaciones, documentos embebidos: db.persons.insert( { Name:‘Pepito Perez‘, Age: 35, Childs: [{Name:’Pepito Perez Junior’,Age:7}] } ); Usa los documentos embebidos cuando los datos siempre se muestren juntos. No se puede filtrar parte de un documento embebido.
  • 23. Fácil de Entender: Funcionalidades Similares Agregación, ejecución de código en el servidor: • Aggregation Framework • Count • Distinct • Group • MapReduce http://www.mongodb.org/display/DOCS/Aggregation
  • 24. Que ventajas nos ofrece? • Es gratis y es multiplataforma • Es rápida y es funcional • Fácil de probar • Fácil de entender • Escalabilidad, Replicación y Alta Disponibilidad • Formación • Soporte Comercial
  • 25. Escalabilidad, Replicación y Alta Disponibilidad • Replica Sets • http://www.mongodb.org/display/DOCS/Replica+Sets • Maestro / Esclavo (en desuso) • http://www.mongodb.org/display/DOCS/Master+Slave • Auto Sharding • http://www.mongodb.org/display/DOCS/Sharding
  • 26. Que ventajas nos ofrece? • Es gratis y es multiplataforma • Es rápida y es funcional • Fácil de probar • Fácil de entender • Escalabilidad, Replicación y Alta Disponibilidad • Formación • http://education.10gen.com/ • http://groups.google.com/group/mongodb-user • irc://irc.freenode.net/#mongodb • Soporte Comercial • http://www.10gen.com/
  • 27. Que ventajas nos ofrece? • Es gratis y es multiplataforma • Es rápida y es funcional • Fácil de probar • Fácil de entender • Escalabilidad, Replicación y Alta Disponibilidad • Formación • Soporte Comercial • http://www.10gen.com/
  • 28. Fácil de Instalar: Instalación Ubuntu La instalación es realmente sencilla, simplemente hay que añadir el repositorio de 10gen e instalarlo con apt-get. Para añadir el repositorio e instalar MongoDB: 1. Importamos la key GPC publica de 10gen con: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 2. Añadimos esta linea a nuestra lista de repositories, que esta en /etc/apt/sources.list: deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen 3. Instalamos con: 1. sudo apt-get update 2. sudo apt-get install mongodb-10gen 4. Arrancamos el servidor con: sudo service mongodb start Listo, ya tenemos el servidor de MongoDB instalado y funcionando.
  • 29. Fácil de Instalar: Instalación Windows La instalación sobre Windows es tan simple como bajar un Zip y descomprimirlo en un directorio. Una vez tenemos los binarios de MongoDB descomprimidos en un directorio podemos instalarlo como un servicio de Windows o correrlo en la consola: 1. Correrlo en la consola: 1. Creamos una carpeta donde se alojaran los datos (ejem c:data) 2. Ejecutamos el mongod pasandole la carpeta: mongod --dbpath c:data 2. Instalarlo como servicio: 1. Creamos una carpeta donde se alojaran los datos (ejem c:data) 2. Creamos un fichero de log (ejem: cdataloglog.txt) 3. Ejecutamos el mongod pasandole la carpeta, el log y la opcion de servicio: mongod --dbpath c:data --logpath cdataloglog.txt --service 4. Buscamos el servicio Mongo DB en los servicios de windows y lo iniciamos Listo, ya tenemos el servidor de MongoDB instalado y funcionando.
  • 30. Sin Instalación: MongoDB en la nube Hay varios proveedores que te ofrecen instancias gratuitas de MongoDB en la nube de manera que puedas hacer pruebas sin necesidad de tener instalada ninguna instancia de MongoDB. • Mongolab te ofrece una instancia gratuita de hasta 500 megas: • https://mongolab.com/home • Mongohq te ofrece una instancia gratuita de hasta 512 megas: • https://www.mongohq.com Estas instancias gratuitas son mas que suficientes para las pruebas de desarrollo e incluso para pequeñas aplicaciones.
  • 33. Referencias • MongoDB: The Definitive Guide • 10gen presentations • Why MongoDB is Awesome
  • 34. Próximos Meetups • Instalar y consumir un Replica Set • Objects Mappings para MongoDB • MongoDB y Ruby on Rails
  • 35. Mallorca #MongoDB User Group http://www.meetup.com/Mallorca-MongoDB-User-Group/ Gracias por venir ;) @emiliotorrens | www.emiliotorrens.com