¿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 ejemploFirstNameyAddress, 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: utilizandoupdate()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 laemit(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 mediantedb.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.
Otras extensiones