14. Diapositiva: 14
Historia de MongoDB
Diseñado y desarrollado por los fundadores de DoubleClick,
ShopWiki, GILT Groupe, etc…
2007 – Inicio de la implementación
2008 – Primer sitio en producción: businessinsider.com
Código abierto (C++) – AGPL
2009 – Versión 1.0
2011 – Versión 2.0
2015 – Versión 3.0
1-Introducción
14
15. Diapositiva: 15
MongoDB1-Introducción
15
Orientada a documentos
• BSON -> Binary JSON
• Esquema flexible
Arquitectura escalable
• Auto-sharding
• Replicación y alta
disponibilidad
Otras características
• Índices secundarios
• Lenguaje de consulta
• MapReduce
17. Diapositiva: 17
1. Introducción
2. Instalación y configuración
3. Operaciones de consulta
4. Operaciones de actualización
5. Índices
6. Aggregation Framework
7. MapReduce
8. MongoDB y Java
17
18. Diapositiva: 18
Descarga e instalación
https://www.mongodb.org/downloads (v2.6.1)
Seleccionar S.O.
Seleccionar los componentes y ruta a instalar
while (!fin) { fin = siguiente();}
Configurar ruta por defecto de la base de datos
2-Instalaciónyconfiguración
18
19. Diapositiva: 19
Opciones de configuración
YAML desde 2.6.x
http://docs.mongodb.org/manual/reference/configuration-options/
Algunas opciones destacadas:
•systemLog Options
•processManagement
•net
•security
•storage
2-Instalaciónyconfiguración
19
21. Diapositiva: 21
Ejecución de MongoDB2-Instalaciónyconfiguración
21
mongod: Proceso demonio
para ejecutar MongoDB
Gestiona peticiones, acceso
a datos y operaciones en
background.
Algunas opciones básicas:
• --help
• --version
• --config <filename>
• --verbose
• --port
• --httpinterface
22. Diapositiva: 22
Instalación como servicio
1. Crear un directorio para guardar el log de eventos:
mkdir databasesdb1logs
2. Crear un directorio para la configuración de la base de datos:
mkdir databasesdb1cfg
3. Crear un fichero mongod.cfg:
logpath=d:softwaremongodbdatabasesdb1logsmongo.log
port=27666
Dbpath=d:softwaremongodbdatabasesdb1
4. Ejecutar el siguiente comando como administrador con PowerShell :
mongod --config “d:softwaremongodbdatabasesdb1cfgmongod.cfg” -install
2-Instalaciónyconfiguración
22
34. Diapositiva: 34
Sharding – Conceptos2-Instalaciónyconfiguración
34
Escalabilidad horizontal
Shard-key: Campo indexado
MongoDB divide los valores
en chunks que se
distribuyen en los shards
Estrategias:
• Hash
• Range
Procesos principales:
• Splitting
• Balancing
35. Diapositiva: 35
1. Introducción
2. Instalación y configuración
3. Operaciones de consulta
4. Operaciones de actualización
5. Índices
6. Aggregation Framework
7. MapReduce
8. MongoDB y Java
35
36. Diapositiva: 36
Tipos de datos básicos
String: guardados en UTF-8. Van siempre entre dobles comillas.
Number: números. Al guardarse en BSON pueden ser de tipo byte,
int32, in64 o double.
Date: fecha almacenada como int64 que representa el número de
millisegundos desde el 1 de enero de 1970
ObjectId: 12 bytes que se utilizan como identificador único de
documento
Boolean: con valor true o false.
Array: van entre corchetes [] y pueden contener de 1 a N elementos,
que pueden ser de cualquiera de los otros tipos.
Documentos: un documento en formato JSON puede contener otros
documentos embebidos que incluyan más documentos o cualquiera de
los tipos anteriormente descritos.
Null.
3-Operacionesdeconsulta
36
37. Diapositiva: 37
Dot Notation3-Operacionesdeconsulta
37
Acceso:
• Elementos de array
• Campos de documento
embebido
Se puede utilizar en las
consultas
db.col.find({
“product.name” : “Canon C234”
})
Se puede utilizar en las
actualizaciones
db.col.update({
“product.type” : “printer”,
$set:{“product.info” : “Por determinar”}
})
Se puede combinar con el
operador $
38. Diapositiva: 38
Consola de MongoDB3-Operacionesdeconsulta
38
help
show dbs
use <nombre de base de
datos>
show collections
show users
show databases
show profile
db.<método>
db.<colección>.<método>
39. Diapositiva: 39
find
Es la operación básica de lectura
Ejemplo de uso (comparado con MySQL):
3-Operacionesdeconsulta
39
40. Diapositiva: 40
findOne
El comando findOne tiene el mismo funcionamiento que el
comando find, con la diferencia de que si el comando
encuentra más de un resultado que cumpla las condiciones de
la consulta, tan solo nos devolverá el primero.
3-Operacionesdeconsulta
40
68. Diapositiva: 68
Tipos
Default _id
Single Field
Compound Index
Multikey Index
Geospatial Index
Text Indexes
Hashed Indexes
5-Índices
68
74. Diapositiva: 74
Ordenación5-Índices
74
Es muy importante especificar el orden para índices
compuestos ya que de ello depende que el índice se cree
facilitando el orden habitual de consulta.
76. Diapositiva: 76
Borrado y actualización5-Índices
76
Eliminar índices
• Para eliminar un índice utilizaremos el comando dropIndex
como se explica en el siguiente ejemplo.
db.products.dropIndex( { "name": 1 }
Regenerar índices
• Al igual que sucede en las bases de datos relacionales
puede ser necesario recrear de nuevo un índice. Para ello
utilizaremos el comando reIndex
db.products.reIndex()
77. Diapositiva: 77
1. Introducción
2. Instalación y configuración
3. Operaciones de consulta
4. Operaciones de actualización
5. Índices
6. Aggregation Framework
7. MapReduce
8. MongoDB y Java
77