Introducción a MongoDB

En este artículo se va a realizar una breve introducción a MongoDB, un sistema gestor de bases de datos NoSQL, completamente open source (código abierto) orientado principalmente a documentos.

MongoDB logo

Para los que os suene a nuevo el concepto de NoSQL, comentar simplemente que su funcionamiento e ideología base es distinta al usado en bases de datos SQL. De este modo, en lugar de guardar los datos en tablas como se hace en las base de datos relacionales con estructuras fijas, las bases de datos NoSQL, como MongoDB, guarda estructuras de datos en documentos con formato JSON y con un esquema dinámico (MongoDB llama ese formato BSON), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.

MongoDB, a pesar de ser una base de datos relativamente joven (su desarrollo empezó en octubre de 2007) se ha convertido en todo un referente a la hora de usar bases de datos NoSQL y está listo para entornos de producción ágiles, de alto rendimiento y con gran carga de trabajo. Además, posee muchas características y es multiplataforma (Windows, Linux, OS X y Solaris) y posee drivers para la gran mayoría de lenguajes de programación.

A continuación se muestra una breve descripción de sus características principales:

  • Consultas Ad hoc: Soporta la búsqueda por campos, consultas de rangos y expresiones regulares. Las consultas pueden devolver tanto un campo específico del documento como una función JavaScript definida por el usuario.
  • Indexación: Se puede indexar cualquier campo del documento así como crear índices secundarios.
  • Replicación: Soporta réplicas de tipo maestro-esclavo, de modo que el maestro puede realizar lecturas y escrituras mientras que el esclavo copia la información almacenada en el maestro y sólo puede usarse para operaciones de lectura o como copia de seguridad. El esclavo es dinámico y, por tanto, puede escoger un nuevo maestro en caso de que el actual se caiga.
  • Balanceo de carga: Se puede escalar horizontalmente mediante llaves shard. De este modo, un shard es un maestro con uno o varios esclavos y los datos son distribuidos por rangos entre todas las instancias de la base de datos.
    Los esclavos pueden ser añadidos dinámicamente.
  • Almacenamiento de archivos: Puede ser utilizado con un sistema de archivos, tomando la ventaja de la capacidad que tiene MongoDB para el balanceo de carga y la replicación de datos utilizando múltiples servidores para el almacenamiento de archivos.
  • Agregación: Posee el concepto de MapReduce para el procesamiento por lotes de datos y operaciones de agregación. Esta función es similar al “group-by” de SQL relacional.
  • Ejecución de JavaScript: Puede realizar consultas usando JavaScript del lado del servidor de modo que estas son ejecutadas directamente sobre la base de datos.

Ejemplo de documento almacenado en MongoDB:

{
    "_id": ObjectId("4efa8d2b7d284dad101e4bc7"),
    "Last Name": "PELLERIN",
    "First Name": "Franck",
    "Age": 29,
    "Address": {
        "Street": "1 chemin des Loges",
        "City": "VERSAILLES"
    }
}

Para terminar con esta introducción a MongoDB, podéis descargar MongoDB de su web oficial de forma totalmente gratuita (al igual que sus drivers).

Happy Minds!!!

Share on FacebookTweet about this on TwitterShare on LinkedInShare on RedditShare on Google+Digg thisShare on TumblrPin on PinterestBuffer this pagePrint this pageEmail this to someone