# MongoDB ## Introducción Es una base de datos orientada a documentos, en la cual se guardan documentos **BSON**, que tiene una sintaxis igual qu un documento **JSON**, La difrencia entre ambos es la capacidad de codificacioón en binario, lo cual en mongodb le da la capacidad de guardar indices ```json {"employees":[ {"firstName":"John", "lastName":"Doe"}, {"firstName":"Anna", "lastName":"Smith"}, {"firstName":"Peter", "lastName":"Jones"} ]} ``` #### Características NoSQL - Orientada a documentos - Indexable - Permite coleccines - Facilmente escalables #### Diferencias con SQL - No tienen esquema/tablas definidas los documentos no tienen estructura fija - Escalabilidad, no hay que realiaz ALTER TABLE - MAP REDUCE permite devidir divir diferentes rangos de valores entre diferentes servidores - Mejora de rendimiento - Menos seguridad #### Estructura de datos SQL **TABLA** | ------ | columna | columna | |--------|---------|--------| | Fila |Registro|Registro| | Fila |Registro|Registro| #### Estructura de datos MongoDB **Coleccion** | ------ | _ID | campo | campo | |--------|---------|--------|--------| | Documento | index |datos documento|datos documento| | Documento | index |datos documento|datos documento| - indice => UUID genera mongodb automaticamente es un hash basado en la mac de la interface de red `{ "_id" : ObjectId("55a2a9637f29e774ecc68d97"), "nombre" : "Juan", "telefono" : 31231233, "direccion" : "Calle falsa" } ` - Tambien se puden crear manualmente ##### Comandos ##### Busqueda (FIND) `db.coleccion.find({campo:valor})` = SELECT `db.coleccion.find({campo:valor}).conunt()` = SELECT COUNT `db.coleccion.find({campo:valor}).short` = SELECT ORDER BY ##### Insercion (INSERT) ##### Actualizacion (UPDATE) ##### Borrado ( ) ##### JOINS en NoSQL Los joins se realizan entre colecciones, db.collectionA.