MongoDB

MongoDb
Información sobre la plantilla
Parte de la familia NoSQL
Logo-mongodb.png
Aplicación de Base de datos
DesarrolladorGeir Magnusson y Dwight Merriman
Sistemas Operativos compatiblesWindows, Linux, OS X y Solaris.
LicenciaGNU AGPL 3.0

MongoDB es el sistema de base de datos desarrollada en 10gen por Geir Magnusson y Dwight Merriman. Es una base de datos orientada a documentos JSON, salvo que está diseñada para ser una verdadera base de datos de objetos, más que para un almacenamiento de clave/valor puro.

Características

Es una base de datos no relacional, es decir, no utiliza SQL. El nombre viene del término inglés “humongous” (colosal) y puede ser definida como una base de datos documental sin esquema, escalable y de alto rendimiento. Algunos especialistas la han catalogado como la “MySQL de las bases de datos NoSQL”, al ver que es una base de datos rapidísima, sencilla en la funcionalidad ofrecida y que, como hizo MySQL hace años, se está ganando la atención de mucha gente.

Forma en que opera

Para almacenar los documentos, utiliza una serialización binaria de JSON, llamada BSON, que es una lista ordenada de elementos simples. El núcleo de la base de datos es capaz de interpretar su contenido, de modo que lo que a simple vista parece un contenido binario, realmente es un documento que contiene varios elementos. Estos datos están limitados a un tamaño máximo de 4 MB; para tamaños superiores se requiere del uso de GridFS.

De forma similar a CouchDB, esta base de datos permite almacenar documentos sin un esquema predefinido, pero ofrece algunas pequeñas diferencias en cuanto a la organización de la información. Parte del concepto de base de datos que podría ser análogo al que usan las base de datos utilizadas anteriormente y además también tiene “colecciones” que serían como las tablas. Pero a diferencia de MySQL o similares, aquí puede guardar documentos con distintos campos dentro de la misma colección, de modo que esta estructura tiene más un sentido de categorización de los elementos que contiene sin obligar a que estos tengan los mismos datos.

Es importante destacar que MongoDB ofrece un rendimiento en inserciones mucho mayor que CouchDB (e incluso algo mejor que MySQL). El fuerte de esta base es una mezcla entre las tablas de hash (key-value) con ciertas características de las bases de datos relacionales (RDBMS).

Características y ventajas

  • Almacenamiento orientado a documentos
    • Documentos estilo JSON con esquemas dinámicos ofrecen simplicidad y poder.
  • Soporte Full index
    • Indices sobre cualquier atributo, tal y como estamos acostumbrados.
  • Replicación y alta disponibilidad
    • Espejos entre LANs y WANs
  • Auto-Sharding
    • Escalabilidad horizontal sin comprometer la funcionalidad, está limitada, actualmente, a 20 nodos, aunque el objetivo es alcanzar una cifra cercana a los 1000.
  • Consultas
    • Ricas y basadas en documentos, rápidas para consultas de lectura y escritura básica.
  • Rápidas actualizaciones en el contexto
  • Mapeo y reducción
    • Agregación flexible y procesamiento de datos.
  • GridFS
    • Almacena archivos de cualquier tamaño sin complicar tu “stack”.
  • Soporte comercial
    • Soporte comercial, capacitación y consultoría disponibles.
  • Soporta consultas dinámicas
    • Se pueden formular sobre cualquier valor de los documentos y no solamente en los indexados.

Fuentes