MongoDB es una base de datos de documentos de propósito general, diseñada para el desarrollo de aplicaciones modernas y para la nube. Su arquitectura de expansión le permite satisfacer la creciente demanda de su sistema agregando más nodos para compartir la carga.
Estos son algunos de los conceptos y términos clave que encontrará a medida que aprenda sobre MongoDB.
MongoDB almacena los datos como documentos JSON.
El modelo de datos de documentos se asigna naturalmente a objetos en el código de la aplicación, lo que facilita a los desarrolladores su aprendizaje y uso.
Los campos en un documento JSON pueden variar de un documento a otro. Compare eso con una tabla de base de datos relacional tradicional, donde agregar un campo significa agregar una columna a la propia tabla de base de datos y, por lo tanto, a cada registro de la base de datos.
Los documentos pueden anidarse para expresar relaciones jerárquicas y almacenar estructuras, como matrices.
El modelo de documento ofrece flexibilidad para manejar datos complejos, de rápida evolución y desordenados de múltiples fuentes. Permite a los desarrolladores entregar rápidamente nuevas funcionalidades de la aplicación.
Para un acceso más rápido internamente y para admitir más tipos de datos, MongoDB convierte los documentos en un formato llamado JSON binario o BSON. Pero desde la perspectiva de un desarrollador, MongoDB es una base de datos JSON.
En MongoDB, una colección es un grupo de documentos.
Si está familiarizado con las bases de datos relacionales, puede pensar en una colección como una tabla. Sin embargo, las colecciones en MongoDB son mucho más flexibles. Las colecciones no aplican un esquema a menos que usted las configure para ello, y los documentos en la misma colección pueden tener campos diferentes.
Cada colección está asociada con una base de datos MongoDB. Para mostrar qué colecciones están en una base de datos en particular, utilice el comando listCollections.
Una forma importante de garantizar alta disponibilidad es mantener más de una copia de sus datos. Con MongoDB, la alta disponibilidad está incorporada directamente en el diseño.
Cuando usted crea una base de datos en MongoDB, el sistema crea automáticamente al menos dos copias más de los datos, denominadas conjunto de réplicas. Un conjunto de réplicas es un grupo de al menos tres instancias de MongoDB que replican continuamente datos entre sí, ofreciendo redundancia y protección contra el tiempo de inactividad en caso de una falla del sistema o mantenimiento planificado.
Una plataforma de datos moderna debe ser capaz de manejar consultas muy rápidas y conjuntos de datos masivos utilizando clústeres cada vez más grandes de máquinas pequeñas. Sharding es el término para distribuir datos de manera inteligente a través de múltiples máquinas.
¿Cómo funciona el sharding en MongoDB? MongoDB fragmenta los datos a nivel de la colección, distribuyendo los documentos de una colección entre los fragmentos de un clúster. El resultado es una arquitectura de expansión que admite incluso las aplicaciones más grandes.
Los índices apoyan la ejecución eficiente de consultas. MongoDB ofrece una variedad de diferentes estrategias de indexación, incluyendo índices compuestos en varios campos. Elegidos con cuidado, los índices aceleran las consultas, porque estas escanean el índice en lugar de leer cada documento de la colección.
Todavía queda trabajo por hacer para analizar qué consultas podrían beneficiarse de agregar un índice. Una herramienta que realiza este análisis por usted es Performance Advisor, que analiza las consultas y sugiere índices que mejorarían el rendimiento de las consultas.
MongoDB ofrece un marco flexible para crear pipelines de procesamiento de datos llamados aggregation pipelines. Cuenta con docenas de etapas y más de 150 operadores y expresiones, permitiéndole procesar, transformar y analizar datos de cualquier estructura a gran escala. Una incorporación reciente es el Union stage, que agrega de manera flexible los resultados de múltiples colecciones.
¿Qué idiomas puede utilizar con MongoDB? La lista de idiomas compatibles incluye Node.js, C, C++, C#, Go, Java, Perl, PHP, Python, Ruby, Rust, Scala, Swift y muchos más. La biblioteca de cada lenguaje se mantiene activamente, lo que significa que se actualiza con nuevas funciones, correcciones de errores, parches de seguridad y mejoras en el rendimiento.
Puede monitorear la salud y rendimiento de su clúster verificando el estado de la instancia, las operaciones del clúster y las métricas de conexiones, las métricas del hardware y más con solo unas cuantas utilidades y comandos. El monitoreo puede ayudarle a detectar problemas en tiempo real y a reaccionar ante ellos antes de que sean graves.
MongoDB comenzó como una base de datos de código abierto y todavía se puede utilizar de esa manera a través de MongoDB Community Edition.
En MongoDB Enterprise Edition, las funciones avanzadas están disponibles a través de una licencia comercial.
MongoDB Atlas es una versión de base de datos como servicio (DBaaS) de MongoDB Enterprise Edition que se ofrece en todas las nubes públicas.
MongoDB Atlas se ha ampliado de diversas formas con funciones incorporadas y estrechamente integradas, como Atlas Search, Atlas Vector Search y otras funciones avanzadas para la geolocalización de datos y la realización de copias de seguridad.
Ahora que ya conoce parte de la terminología que encontrará al aprender sobre MongoDB, ¿por qué no empieza ahora mismo utilizando MongoDB Atlas? Y de paso, únase a la comunidad de MongoDB, que ofrece desde foros y seminarios web hasta cursos gratuitos de MongoDB University. Un buen punto de partida es el curso introductorio Aspectos básicos de MongoDB.
MongoDB es una base de datos de propósito general, con una amplia variedad de casos de uso. Si todavía se está preguntando si MongoDB es la opción adecuada para su aplicación, revise el artículo ¿Por qué usar MongoDB?.
Obtenga más información en nuestra serie Aspectos básicos de MongoDB.