MongoDB, la base de datos NoSQL más popular, es una base de datos orientada a documentos de código abierto. El término ‘NoSQL’ significa ‘no relacional’. Significa que MongoDB no se basa en la estructura de base de datos relacional similar a una tabla, sino que proporciona un mecanismo completamente diferente para almacenar y recuperar datos. Este formato de almacenamiento (similar al formato JSON) se llama BSON.
Una estructura de documento MongoDB simple:
{ title: 'Geeksforgeeks', by: 'Harshit Gupta', url: 'https://www.geeksforgeeks.org', type: 'NoSQL' }
Las bases de datos SQL almacenan datos en formato de tabla. Estos datos se almacenan en un modelo de datos predefinido que no es muy flexible para las aplicaciones en constante crecimiento de la actualidad. Las aplicaciones modernas están más conectadas en red, son más sociales e interactivas que nunca. Las aplicaciones están almacenando más datos y accediendo a ellos a velocidades más altas.
Sistema de gestión de bases de datos relacionales (RDBMS) iNo es la opción correcta para manejar big data debido a su diseño ya que no son escalables horizontalmente. Si la base de datos se ejecuta en un servidor, alcanzará un límite de escala. Las bases de datos NoSQL son más escalables y ofrecen un mejor rendimiento. MongoDB es una base de datos NoSQL que escala al agregar más y más servidores y aumenta la productividad con su modelo de documento flexible.
RDBMS frente a MongoDB:
- RDBMS tiene un diseño de esquema típico que muestra la cantidad de tablas y la relación entre estas tablas, mientras que MongoDB está orientado a documentos. No hay concepto de esquema o relaciones.
- Las transacciones complejas no se admiten en MongoDB porque las operaciones de combinación complejas no están disponibles.
- MongoDB permite una estructura de documentos extremadamente flexible y escalable. Por ejemplo, un documento de datos de una colección en MongoDB puede tener dos campos, pero otro documento de la misma colección puede tener cuatro campos.
- MongoDB es más rápido en comparación con RDBMS debido a técnicas eficientes de indexación y almacenamiento.
- Hay algunos términos relacionados con ambas bases de datos. Una tabla en RDBMS se denomina colección en MongoDB. De manera similar, un Documento se llama Tupla y una Columna se llama Campo. MongoDB proporciona un ‘_id’ predeterminado (si no se proporciona explícitamente), que es un número hexadecimal de 12 bytes que garantiza la unicidad de cada documento. Es similar a la clave principal en RDBMS.
Características de MongoDB:
- Orientado a documentos: MongoDB almacena el contenido principal en la cantidad mínima de documentos y no lo divide en múltiples estructuras relacionales como RDBMS. Por ejemplo, almacena toda la información de una computadora en un solo documento llamado Computadora y no en estructuras relativas separadas como CPU, RAM, disco duro, etc.
- Indexación: Sin indexación, una base de datos tendría que escanear todos los documentos de una colección para seleccionar aquellos que coincidan con la consulta, lo que sería ineficiente. Por lo tanto, para una búsqueda eficiente, la indexación es esencial y MongoDB la usa para procesar grandes cantidades de datos en menos tiempo.
- Escalabilidad: MongoDB se escala horizontalmente mediante sarding (partición de datos en diferentes servidores). Los datos se dividen en fragmentos de datos utilizando la clave de fragmento, y estos fragmentos de datos se distribuyen uniformemente entre fragmentos que residen en muchos servidores físicos. Además, se pueden agregar nuevas máquinas a una base de datos existente.
- Replicación y alta disponibilidad: MongoDB aumenta la disponibilidad de datos con múltiples copias de datos en diferentes servidores. Al proporcionar redundancia, protege la base de datos de fallas de hardware. Si un servidor deja de funcionar, los datos se pueden recuperar fácilmente de otros servidores activos en los que también se almacenaron los datos.
- Agregación: las operaciones de agregación procesan registros de datos y devuelven los resultados calculados. Es similar a la cláusula GROUPBY en SQL. Algunas expresiones de agregación son suma, promedio, mínimo, máximo, etc.
¿Dónde usaremos MongoDB?
MongoDB es mejor que RDBMS en las siguientes situaciones:
- Grandes datos: si tiene una gran cantidad de datos para almacenar en tablas, considere MongoDB antes que las bases de datos RDBMS. MongoDB tiene una solución integrada para particionar y particionar su base de datos.
- esquema inestable: Agregar una nueva columna es difícil en RDBMS pero MongoDB no tiene esquema. Agregar un nuevo campo no afecta a los documentos antiguos y será muy fácil.
- Datos de distribución Dado que se almacenan múltiples copias de datos en diferentes servidores, la recuperación de datos es inmediata y segura incluso en caso de falla del hardware.
Soporte de idiomas de MongoDB:
Actualmente, MongoDB proporciona compatibilidad con controladores oficiales para todos los lenguajes de programación populares, como C, C++, Rust, C#, Java, Node.js, Perl, PHP, Python, Ruby, Scala, Go y Erlang.
yoinstalando MongoDB:
solo ve a http://www.mongodb.org/descargas y seleccione su sistema operativo de él ventanas, linux, Mac OS X y Solaris. En su sitio se proporciona una explicación detallada de la instalación de MongoDB.
Para Windows, se despliegan algunas opciones para los sistemas operativos de 64 bits. Cuando se ejecuta en Windows 7, 8 o versiones más recientes, seleccione Windows 64 bits 2008 r2+. Cuando use Windows XP o Vista, seleccione y luego Windows 64 bits 2008 R2+ heredado.
¿Quién está usando MongoDB?
Varios sitios web y servicios importantes han adoptado MongoDB como su software de back-end, incluidos EA, Cisco, Shutterfly, Adobe, Ericsson, Craigslist, eBay y Foursquare.
Artículo siguiente:
MongoDB y Python
Para más información, visita su página en internet: https://www.mongodb.com/nosql-explicado
Sobre el autor – con sede en Calcuta Harshit Gupta es un blogger activo que está muy interesado en escribir sobre temas de actualidad, blogs técnicos, historias y experiencias personales de vida. Además de ser un apasionado de la escritura, también le encanta programar y bailar. Actualmente estudia en el IIEST y es colaborador activo del blog geeksforgeeks.
Si desea mostrar su blog aquí también, consulte GBlog por escribir un blog invitado en GeeksforGeeks.