SlideShare una empresa de Scribd logo
MondonGO
¿Qué es MondonGO?
“Mondongo es a los ODMs lo que MongoDB a las
bases de datos.”
¿Ein?
“Mondongo es a los ODMs lo que MongoDB a las
bases de datos.”
¿Qué es ?
“MongoDB es una base de datos escalable, de alto
rendimiento, de código abierto y orientada a
documentos.”
Terminología
Base de Datos = Base de Datos
Base de Datos = Base de Datos
Tabla = Colección
Base de Datos = Base de Datos
Tabla = Colección
Registro ~ Documento
Documentos
JSON
Mondongo, un ODM para PHP y MongoDB
Embebidos
Mondongo, un ODM para PHP y MongoDB
Sin Esquema
Cada documento puede tener distinta estructura
No hay tipos
Drivers
Mondongo, un ODM para PHP y MongoDB
en
Conectar con Mongo
Seleccionar bases de datos
Seleccionar colecciones
Las bases de datos y las colecciones se crean
automáticamente si no existen
Los documentos son simplemente arrays
Insertar documentos
Mondongo, un ODM para PHP y MongoDB
Actualizar documentos
Consultar documentos
¿Qué es un ODM?
ODM == Object Document Mapper
“Un ODM es una herramienta que mapea la
estructura de bases de datos a objetos”
¿Qué es MondonGO?
“Mondongo es un sencillo, potente y ultrarápido
ODM para PHP y MongoDB.”
Sencillo
Fácil de usar
Potente
MondonGO es increíblemente flexible gracias a
Mondator
Puede usarse para cualquier tipo y tamaño de
proyecto
Ultrarápido
Ha sido diseñado para ser extremadamente
ligero
Es el mapeador más rápido en PHP actualmente
¿Qué es Mondator?
“Mondator es un generador de clases para PHP.”
Mondongo usa Mondator para generar las clases
de documentos y repositorios
Iniciar un mondator
Las configuraciones de clases contienen la
información de las clases que deben generarse
Asignar configuraciones de clases
Asignar configuraciones de clases
Las extensiones determinan qué clases se
generarán y dónde a partir de las
configuraciones de clases
Asignar extensiones
Asignar extensiones
Procesar el mondator
Mondongo genera cuatro clases por cada
configuración de clase
Mondongo, un ODM para PHP y MongoDB
Las clases Base no deben editarse, se
sobreescriben cada vez que se procesa el mondator
Documentos MondonGO
Los documentos Mondongo se mapean en las
configuraciones de clases de Mondator
Campos
Son los datos de los documentos
Mondongo, un ODM para PHP y MongoDB
Tipos MondonGO
● array
● bin_data
● boolean
● date
● float
● integer
● raw
● reference_one
● reference_many
● string
Se usan setters y getters para trabajar con los
datos de los documentos
Mondongo, un ODM para PHP y MongoDB
Referencias
Las referencias son relaciones hacia otros
documentos
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Referencias a uno
Referencias a varios
Embebidos
Los embebidos son documentos dentro de
otros documentos
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Se usan igual que las referencias
Guardar
Mondongo, un ODM para PHP y MongoDB
Mondongo genera la inserción o actualización
óptima de los campos modificados
Borrar
Mondongo, un ODM para PHP y MongoDB
Configurar MondonGO
Iniciar un mondongo
Asignar conexiones al mondongo
Las conexiones son perezosas
Repositorios MondonGO
Los repositorios realizan funciones generales
sobre clases de documentos
Se obtienen mediante el mondongo
Mondongo, un ODM para PHP y MongoDB
Consultas MondonGO
Se realizan mediante los repositorios
Consultar documentos
Consultar documentos con opciones
Consultar documentos agrupando opciones
La sintaxis de las opciones Mondongo es la
misma que la sintaxis Mongo
Consultar un documento
Consultar un documento por ID
Contar documentos
Borrar documentos
Eventos MondonGO
Mondongo proporciona varios hooks en los
documentos, que se lanzan antes y después de
ciertas acciones
● preSave
●
postSave
● preInsert
● postInsert
●
preUpdate
● postUpdate
●
preDelete
● postDelete
Mondongo, un ODM para PHP y MongoDB
Extensiones MondonGO
Las extensiones Mondongo son extensiones Mondator
Las extensiones Mondongo permiten personalizar
muchísimo Mondongo
¿Quieres usar los documentos como arrays?
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
¿Quieres usar los documentos por sobrecarga?
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
¿Quieres importar y exportar datos con arrays?
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Extensiones Independientes
Mondongo
Se definen en las configuraciones de clases
¿Quieres guardar fechas de creación y actualización
en algún documento?
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
¿Quieres guardar el slug de algún campo en algún
documento?
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
¿Qué puedes hacer con extensiones independientes
Mondongo?
● Modificar campos, referencias, embebidos
● Añadir
● Editar
● Borrar
● Añadir propiedades y métodos a documentos y
repositorios
● Añadir eventos a documentos
● …
Extensiones Independientes Mondongo
por defecto
¿Quieres guardar fechas de creación y actualización
en todos los documentos?
Mondongo, un ODM para PHP y MongoDB
Más mondongadas...
Mondongo permite manejar fácilmente los
índices de las colecciones
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo permite guardar ficheros mediante
GridFS
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo permite loguear las consultas de la
base de datos para optimizar el desarrollo
Mondongo, un ODM para PHP y MongoDB
Mondongo usa batchInsert para insertar
documentos de manera eficiente
Mondongo usa operaciones atómicas para
actualizar y borrar documentos eficientemente
Al usar clases generadas, y con PHPDoc,
podrás usar el autocompletado de tu editor
IDE
Mondongo está completamente testeado con
pruebas automáticas con PHPUnit
¿Por qué un ODM con MongoDB?
Un ODM acelera y simplifica muchísimo el
desarrollo y mantenimiento de las aplicaciones
Los ODMs tienen una desventaja:
el rendimiento
¿Es MondonGO realmente
ultrarápido ?
Vamos a ver unas pruebas comparando Mondongo con
Mongo directamente y con otros dos ODMs:
ActiveMongo y DoctrineMongo
Insertando
Mondongo, un ODM para PHP y MongoDB
Consultando por ID
Mondongo, un ODM para PHP y MongoDB
Hydratando
Mondongo, un ODM para PHP y MongoDB
Resumiendo...
Mondongo, un ODM para PHP y MongoDB
Y además...
sfMondongoPlugin
Integración con symfony
MondongoBundle
Integración con Symfony2
Conclusiones
● Mongo es sinónimo de alto rendimiento
Conclusiones
● Mongo es sinónimo de alto rendimiento
● Un ODM acelera y simplifica el desarrollo y
mantenimiento de las aplicaciones
Conclusiones
● Mongo es sinónimo de alto rendimiento
● Un ODM acelera y simplifica el desarrollo y
mantenimiento de las aplicaciones
● Mondongo es el mejor aliado para exprimir
hasta la última gota de MongoDB en PHP
Conclusiones
● Mongo es sinónimo de alto rendimiento
● Un ODM acelera y simplifica el desarrollo y
mantenimiento de las aplicaciones
● Mondongo es el mejor aliado para exprimir
hasta la última gota de MongoDB en PHP
● Las extensiones Mondator enlarguis your...
¡mondongo!
¿Preguntas?
http://mondongo.es
pablodip@gmail.com
http://twitter.com/pablodip
http://github.com/pablodip
¿Te gusta Mondongo?
* Úsalo
* Dalo a conocer
* Blog
* Twitter #mndgo

Más contenido relacionado

PPTX
Almacenar Datos En Firebase con AndroidStudio
PDF
PPT
Arquitectura de Computadores
PDF
Continuous Improvement in PHP projects
KEY
PHP security audits
PDF
Database version control without pain - the PHP Barcelona version
PPTX
Características MONGO DB
PDF
MongoDB: la BBDD NoSQL más popular del mercado
Almacenar Datos En Firebase con AndroidStudio
Arquitectura de Computadores
Continuous Improvement in PHP projects
PHP security audits
Database version control without pain - the PHP Barcelona version
Características MONGO DB
MongoDB: la BBDD NoSQL más popular del mercado

Destacado (6)

PDF
CouchDB Vs MongoDB
PDF
Mongodb vs couchdb
PPT
Zend PHP 5.3 Demo Certification Test
PDF
Design patterns revisited with PHP 5.3
PDF
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
PPTX
Scaling with MongoDB
CouchDB Vs MongoDB
Mongodb vs couchdb
Zend PHP 5.3 Demo Certification Test
Design patterns revisited with PHP 5.3
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Scaling with MongoDB
Publicidad

Similar a Mondongo, un ODM para PHP y MongoDB (20)

PPTX
Mongo db
PPTX
bases de datos gestion y manejo de ytaba
PDF
PPTX
PDF
Investigación de sobre los conceptos que se deben de tratar en Mongo DB
PPTX
Mongo db
PPTX
PPTX
Sgbd mongodb
PPTX
Diapositva
PPTX
MEAN Stack
PPTX
Mallorca MUG: Introducción a MongoDB
PPTX
Introduccón a Mongodb
PPTX
Mongo db
PPTX
Que es MongoDB
PDF
Lunch & Learn: El poder de las NoSQL con mongoDB
PDF
mongodb.base de datis noo relacionles fr
PPTX
Seminario web: Simplificando el uso de su base de datos con Atlas
PPTX
¿que es mongodb?
ODP
MongoDB y Symfony
Mongo db
bases de datos gestion y manejo de ytaba
Investigación de sobre los conceptos que se deben de tratar en Mongo DB
Mongo db
Sgbd mongodb
Diapositva
MEAN Stack
Mallorca MUG: Introducción a MongoDB
Introduccón a Mongodb
Mongo db
Que es MongoDB
Lunch & Learn: El poder de las NoSQL con mongoDB
mongodb.base de datis noo relacionles fr
Seminario web: Simplificando el uso de su base de datos con Atlas
¿que es mongodb?
MongoDB y Symfony
Publicidad

Último (20)

PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PDF
capacitación de aire acondicionado Bgh r 410
PDF
Distribucion de frecuencia exel (1).pdf
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PPTX
ccna: redes de nat ipv4 stharlling cande
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PDF
CyberOps Associate - Cisco Networking Academy
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
El uso de las TIC en la vida cotidiana..
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
PPTX
Curso de generación de energía mediante sistemas solares
DOCX
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
capacitación de aire acondicionado Bgh r 410
Distribucion de frecuencia exel (1).pdf
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
Historia Inteligencia Artificial Ana Romero.pptx
ccna: redes de nat ipv4 stharlling cande
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Documental Beyond the Code (Dossier Presentación - 2.0)
CyberOps Associate - Cisco Networking Academy
Diapositiva proyecto de vida, materia catedra
El uso de las TIC en la vida cotidiana..
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
Curso de generación de energía mediante sistemas solares
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
Power Point Nicolás Carrasco (disertación Roblox).pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
la-historia-de-la-medicina Edna Silva.pptx
informe_fichas1y2_corregido.docx (2) (1).pdf
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN

Mondongo, un ODM para PHP y MongoDB