Seguro que a estas alturas todos sabéis ya a que se refiere el término NoSQL (https://unpocodejava.wordpress.com/?s=noSQL) .
Las crecientes necesidades en cuanto a rendimiento, escalabilidad, velocidad, rendimiento han hecho que este término esté ya en nuestras vidas.
Las bases de datos NoSQL vencen a las BD relacionales tradicionales al no requerir un modelo estáticos y estructura de datos para almacenar la información.
MongoDB es una de estas base de datos. En este post veremos algunas de sus características principales (en su momento ya comparamos varias bases de datos NoSQL aquí), y decíamos:
¿Que es MongoDB?
· Es una base de datos NoSQL, orientada a documentos.
· Pensada para ser rápida, escalable y fácil de usar.
¿Dónde aplica?
· Aplicaciones que almacenan grandes cantidades de datos o datos complejos.
· Por ejemplo para aplicaciones con estructuras complejas como blogs (post, comentarios, rollbacks,etc) o aplicaciones de analítica (Google analytics).
Algunas características importantes de MongoDB:
Ausencia de transacciones
· (Aunque parezca un inconveniente)esto le permite a MongoDB ser más rápida y escalable a nivel horizontal.
Escalabilidad horizontal
· En sistemas tradicionales RDBMS, para mejorar el rendimiento de la base de datos se adquiría una máquina más potente (escalado vertical)
· En MongoDB funciona mejor el escalado horizontal (incrementar número de máquinas)
Almacenamiento Orientado a documentos (BSON)
· JSON es más que una gran forma de intercambiar información, es también una excelente forma de almacenarla
· MongoDB almacena todo un registro en un mismo documento.
· No hay necesidad de especificar estructura alguna y sus documentos pueden cambiarse individualmente.
· MongoDB usa BSON (Binary-JSON),un formato abierto basado en JSON que permite manejar datos binarios,
· Con el uso de BSON MongoDB es muy rápida en la búsqueda, indexación, almacenamiento y recuperación de la información
· BSON es fácil y rápidamente transformable en cualquier tipo de dato nativo de cualquier lenguaje de programación.
Soporte a Querys dinámicas
· Como en las bases de datos tradicionales, MongoDB también acepta la ejecución de queries dinámicas (a diferencia de otras como CouchDB)
Indexación de Documentos
· Todos los documentos son automáticamente indexados con una clave llamada _id.
· Esta clave nos asegura que cada documento es único,
· MongoDB permite indexar documentos embebidos (se puede crear un índice en un código postal)
Indices Geoespaciales
· Permite la indexación de la información basado en la localización.
· Permite crear consultas del tipo: “cuantos artículos se encuentran a cierta distancia de un determinado conjunto de coordenadas”,
Analisis de Rendimiento de Queries
· MongoDB provee una herramienta para el análisis de consultas que permite determinar el rendimiento de nuestras consultas o conocer posibles defectos en su estructura o simplemente mejorar el tiempo de respuesta de las mismas.
GridFS
· BSON puede almacenar hasta 4Mb de datos binarios en un documento
· Si necesitamos espacio adicional (imágenes, audio, vídeo) MongoDB provee de un sistema llamado GridFS.
· GridFS permite almacenar la información del archivo (metadata) en una colección de archivos: los datos se divide en pequeñas partes llamadas “chunks”
Replicación de Datos
· MongoDB provee mecanismo llamado replicación maestro-esclavo, con lo que solo una base de datos está activa para escritura en un momento dado.
· Todas las peticiones de escritura se realizan en la base de datos maestra y esta las pasa a la réplica (esclavo)
· Si la bd principal falla la esclava ocupa su lugar.
· MongoDB implementa el concepto de réplica a pares de modo que cuando falla se determina cuál de las 2 bases de datos (maestro-esclavo) es la que tomará el control para continuar prestando el servicio.
Implementación de Auto Sharding
· El AutoSharding es muy interesante en despliegues a gran escala, delega en MongoDB la separación y recombinación de los datos y el aseguramiento de que vaya al servidor correcto y que las queries se ejecuten y combinen de la forma más eficiente posible.



Replica a Sebastian Cancelar la respuesta