¿Qué es MongoDB?
MongoDB es una base de datos orientada a documentos, donde los datos se almacenan en forma de documentos similares a JSON.
El diseño de MongoDB está pensado para satisfacer las necesidades de grandes volúmenes de datos, alto rendimiento y flexibilidad.
MongoDB utiliza colecciones (Collections) para organizar documentos (Documents), y cada documento está compuesto por pares de clave-valor.
- Base de datos (Database): un contenedor para almacenar datos, similar a la base de datos en las bases de datos relacionales.
- Colección (Collection): una colección dentro de la base de datos, similar a una tabla en las bases de datos relacionales.
- Documento (Document): un registro de datos dentro de una colección, similar a una fila (row) en las bases de datos relacionales, almacenado en formato BSON.
MongoDB almacena los datos como un documento; la estructura de datos se compone de pares de clave-valor (key=>value). El documento es similar a un objeto JSON, y los valores de los campos pueden contener otros documentos, arreglos y arreglos de documentos:
Características principales
-
Almacenamiento orientado a documentos: MongoDB es una base de datos orientada a documentos que almacena datos en un formato similar a JSON, lo que hace que la estructura de datos sea más flexible y rica.
-
Índices para optimizar consultas: MongoDB permite a los usuarios crear índices sobre cualquier atributo del documento, por ejemplo
FirstNameyAddress, mejorando así la eficiencia de las consultas y el rendimiento de la ordenación. -
Duplicación de datos y escalabilidad: al crear copias de los datos localmente o a través de la red, MongoDB logra una sólida redundancia de datos y capacidad de expansión.
-
Escalado horizontal y fragmentación: ante un aumento de la carga, MongoDB puede distribuir los datos a otros nodos de la red informática mediante la tecnología de fragmentación, logrando así un escalado horizontal.
-
Potente lenguaje de consultas: MongoDB utiliza una sintaxis de consulta en formato JSON y admite expresiones de consulta complejas, incluidas consultas sobre objetos anidados y arreglos.
-
Actualización de datos: utilizando
update()el comando, MongoDB puede reemplazar todo el documento o actualizar campos de datos específicos, ofreciendo una forma flexible de actualización de datos. -
Procesamiento por lotes con MapReduce: la funcionalidad MapReduce de MongoDB está diseñada específicamente para el procesamiento de datos a gran escala y operaciones de agregación. Mediante la
emit(key, value)invocación y el procesamiento lógico de la función Reduce, se logra una agregación de datos eficiente. -
Escritura de scripts MapReduce: Las funciones Map y Reduce se escriben en JavaScript y se pueden ejecutar mediante
db.runCommandomapreduceel comando en MongoDB. -
GridFS para almacenamiento de archivos grandes: GridFS es una funcionalidad integrada de MongoDB que se utiliza para almacenar y recuperar archivos mayores que el límite de tamaño de los documentos BSON, como imágenes y videos.
-
Ejecución de scripts en el servidor: MongoDB permite ejecutar scripts de JavaScript en el servidor, ofreciendo la capacidad de ejecutar directamente en el servidor o almacenar definiciones de funciones para invocaciones posteriores.
-
Soporte para múltiples lenguajes: MongoDB ofrece soporte para múltiples lenguajes de programación, incluidos, entre otros, RUBY, PYTHON, JAVA, C++, PHP y C#.
-
Instalación sencilla: El proceso de instalación de MongoDB es simple e intuitivo, lo que facilita a los usuarios un despliegue y uso rápidos.
Historia
| Versión | Fecha de publicación | Descripción de características |
|---|---|---|
| 1.0 | Agosto de 2009 | Más índices por colección Creación de índices más rápida |
| 1.2 | Diciembre de 2009 | Map/Reduce Funciones de JavaScript almacenadas Tiempo de fsync configurable Varias características menores y correcciones |
| 1.4 | Marzo de 2010 | Fragmentación (sharding) lista para producción |
| 1.6 | Agosto de 2010 | Conjuntos de réplicas (replica sets) Soporte para IPv6 |
| 1.8 | Marzo de 2011 | |
| 2.0 | Septiembre de 2011 | |
| 2.2 | Agosto de 2012 | Soporte geoespacial mejorado Cambio al motor JavaScript V8 |
| 2.4 | Marzo de 2013 | Mejoras de seguridad Búsqueda de texto (beta) Índices hash Mejoras en la agregación Integración de búsqueda de texto |
| 2.6 | 8 de abril de 2014 | Mejoras en el motor de consultas Nuevo protocolo de operaciones de escritura Mejoras de seguridad Soporte del motor de almacenamiento WiredTiger API de motor de almacenamiento conectable |
| 3.0 | 3 de marzo de 2015 | Autenticación SCRAM-SHA-1 Funcionalidad explain mejorada MongoDB Ops Manager Mejoras en la elección de conjuntos de réplicas Motor de almacenamiento WiredTiger por defecto |
| 3.2 | 8 de diciembre de 2015 | Servidores de configuración como conjuntos de réplicas Read concern Cambio de V8 a SpiderMonkey Read concern linealizable |
| 3.4 | 29 de noviembre de 2016 | Vistas Ordenación (collation) |
| 3.6 | Noviembre de 2017 | |
| 4.0 | Junio de 2018 | Transacciones |
| 4.2 | Agosto de 2019 | |
| 4.4 | Julio de 2020 | |
| 4.4.5 | Abril de 2021 | |
| 4.4.6 | Mayo de 2021 | API versionada orientada al futuro |
| 5.0 | 13 de julio de 2021 | Cifrado a nivel de campo en el cliente Re-fragmentación en tiempo real Soporte para series temporales |
| 6.0 | Julio de 2022 | |
| 7.0 | 15 de agosto de 2023 |
Descargar MongoDB
Puedes descargar el paquete de instalación desde el sitio web oficial de MongoDB, en la dirección:https://www.mongodb.com/try/download/community。
MongoDB es compatible con las siguientes plataformas:
Linux: MongoDB admite varias distribuciones de Linux, incluidas, entre otras, Ubuntu, Debian, CentOS, Red Hat Enterprise Linux (RHEL), Fedora, etc.
Windows: MongoDB ofrece una versión oficial para el sistema operativo Windows, que puede ejecutarse en Windows Server y en sistemas operativos de escritorio Windows.
macOS: MongoDB puede ejecutarse en macOS y proporciona un instalador oficial para macOS.
Docker: MongoDB también puede ejecutarse como un contenedor Docker, lo que facilita el despliegue y la administración de MongoDB en varias plataformas.

Soporte de lenguajes
MongoDB tiene los siguientes controladores oficiales:
Herramientas de MongoDB
Existen varias herramientas de administración disponibles para MongoDB.
Monitoreo
MongoDB proporciona la herramienta de monitoreo de red y sistema Munin, que se aplica como complemento en MongoDB.
Gangila es una herramienta de monitoreo de sistema de alto rendimiento para MongoDB, y se aplica como complemento en MongoDB.
Cacti es una herramienta de código abierto basada en interfaz gráfica, utilizada para ver la carga de la CPU y la utilización del ancho de banda de la red; también ofrece un complemento para monitorear MongoDB.
GUI
- Fang of Mongo: basado en web, construido con Django y jQuery.
- Futon4Mongo: una versión clon de MongoDB basada en el Futon web de CouchDB.
- Mongo3: escrito en Ruby.
- MongoHub: una aplicación para OSX.
- Opricot: una consola de MongoDB basada en navegador, escrita en PHP.
- Database Master: herramienta de administración de MongoDB para Windows.
- RockMongo: la mejor herramienta de administración de MongoDB en PHP, ligera y compatible con varios idiomas.
Casos de aplicación de MongoDB
A continuación se enumeran algunas aplicaciones reales de MongoDB en empresas:
- Craiglist utiliza MongoDB para archivar miles de millones de registros.
- FourSquare, un sitio de redes sociales basado en la ubicación, utiliza MongoDB en los servidores de Amazon EC2 para compartir datos.
- Shutterfly, un servicio de publicación social y personal basado en Internet, utiliza MongoDB para diversos requisitos de almacenamiento de datos persistentes.
- bit.ly, un servicio de acortamiento de URLs basado en web, utiliza MongoDB para almacenar sus propios datos.
- spike.com, una empresa afiliada de MTV Networks, utiliza MongoDB.
- Intuit, un proveedor de software y servicios para pequeñas empresas y particulares, utiliza MongoDB para rastrear los datos de los usuarios de las pequeñas empresas.
- sourceforge.net, un sitio web de recursos para encontrar, crear y publicar software de código abierto gratuitamente, utiliza MongoDB para el almacenamiento de back-end.
- etsy.com, un sitio web para comprar y vender artículos hechos a mano, utiliza MongoDB.
- El New York Times, uno de los principales portales de noticias en línea, utiliza MongoDB.
- CERN, el famoso instituto de física de partículas, utiliza MongoDB para los datos del Gran Colisionador de Hadrones.