Skip to Content

¿Qué es MongoDB?

MongoDB es una base de datos NoSQL de código abierto. Como base de datos no relacional, puede procesar datos estructurados, semiestructurados y no estructurados. Utiliza un modelo de datos no relacional orientado a documentos y un lenguaje de consulta no estructurado.

MongoDB es muy flexible y permite combinar y almacenar múltiples tipos de datos. También almacena y maneja mayores cantidades de datos que las bases de datos relacionales tradicionales. MongoDB usa un formato de almacenamiento de documentos llamado BSON, que es una forma binaria de JSON (JavaScript Object Notation o notación de objetos de JavaScript) que puede acomodar más tipos de datos.

¿Cómo funciona MongoDB?

MongoDB almacena objetos de datos en colecciones y documentos en lugar de las tablas y filas que se utilizan en las bases de datos relacionales tradicionales. Las colecciones comprenden conjuntos de documentos, que son equivalentes a tablas en una base de datos relacional. Los documentos consisten en pares clave-valor, que son la unidad básica de datos en MongoDB.

La estructura de un documento se puede cambiar simplemente añadiendo campos nuevos o eliminando los existentes. Los documentos pueden definir una clave principal como identificador único y los valores pueden ser una variedad de tipos de datos, incluidos otros documentos, matrices y matrices de documentos.

¿Cómo funciona la búsqueda de texto de MongoDB?

Una función clave de MongoDB es la búsqueda de texto, que permite consultar campos de cadena para texto o palabras específicas. Se puede realizar una búsqueda de texto usando un índice de texto o el operador $text.

Un índice de texto puede ser una cadena o una matriz de elementos de cadena. Para hacer una consulta de búsqueda de texto, la colección debe contener un índice de texto. Una colección solo puede tener un índice de texto y un único índice de texto se puede aplicar a varios campos.

También se puede efectuar una búsqueda en una colección con un índice de texto usando el operador $text. El operador $text tokeniza cada cadena de búsqueda con espacios en blanco y trata todos los signos de puntuación excepto "–" y "\" como delimitadores. Después de tokenizar la cadena de búsqueda, el operador realiza la operación lógica OR en los tokens.

Tres ejemplos de consultas de MongoDB

MongoDB utiliza MongoDB Query Language (MQL) para recuperar datos de la base de datos. Es fácil de usar y funciona de manera similar a SQL con operaciones CRUD para crear, leer, actualizar y eliminar documentos. Los nombres de las funciones siguen la sintaxis:

        <database>.<collection_name>. <operation>.

A continuación se muestran tres ejemplos prácticos:

INSERT: Crear o insertar un nuevo documento en una colección. Si la colección no existe, se creará una nueva colección.

        db.collection.insertOne() inserta un documento en una colección.

        db.collection.insertMany() inserta varios documentos en una colección a la vez.

Así es como se ve la inserción de un documento en la colección del cliente:

        db.customer.insertOne (

        {

        firstname: “Marta”,

        lastname: “Casas”

        Address: “Calle Petunias 232, Ciempozuelos, Madrid, 28350”

        }

FIND: Esto consulta una colección de documentos. Se pueden aplicar criterios y filtros de consulta para encontrar documentos específicos.

        db.collection.find()

El siguiente código encuentra todos los documentos en la colección del cliente:

        db.customer.find()

UPDATE: Esto modifica los documentos existentes en una colección.

        db.collection.updateOne()

        db.collection.updateMany()

        db.collection.replaceOne()

Así es como actualizaría un documento en la colección de clientes:

        db.customer.updateOne(

        { firstname: “Marta” },

                       {

                                $set: { “address”, “Calle Lavanda 5, Ciempozuelos, Madrid, 28350”}

                        }

        )

Las tres ventajas principales de MongoDB

Flexibilidad

MongoDB tiene una arquitectura de esquema dinámico que funciona con almacenamiento y datos no estructurados. Como los datos se almacenan en documentos flexibles similares a JSON, el esquema de la base de datos no tiene que estar predefinido y los esquemas se pueden modificar dinámicamente sin causar tiempo de inactividad.

Con el formato de datos BSON de MongoDB, los objetos en una colección pueden tener diferentes conjuntos de campos, y casi cualquier tipo de estructura de datos se puede modelar y manipular. Por esta razón, el modelo de base de datos flexible de MongoDB es especialmente beneficioso a medida que cambian los requisitos de negocio y de datos.

Fragmentación

MongoDB ofrece escalabilidad horizontal a través de un proceso llamado fragmentación. La fragmentación divide los datos de un gran conjunto de datos y los distribuye entre varios servidores. Si un servidor no puede gestionar una gran carga de datos, puede dividirse y distribuirse automáticamente sin interrumpir el procesamiento de datos.

Mayor Rendimiento

MongoDB almacena los datos en RAM para poder acceder más rápidamente a ellos y conseguir un mayor rendimiento al ejecutar consultas. Recopila los datos directamente de la RAM en lugar del disco duro, lo que hace que la lectura y escritura de datos sea más rápida. La estructura de datos no relacional de MongoDB también implica que necesita menos potencia de procesamiento para buscar y recuperar datos que una base de datos relacional.

¿En qué casos sería recomendable usar MongoDB?

El Analíticas en Tiempo Real

Como base de datos NoSQL, MongoDB es una buena opción para integrar y procesar macrodatos (es decir, enormes cantidades de datos diversos demasiado grandes para ser procesados por bases de datos relacionales tradicionales).

MongoDB no tiene esquema y, por tanto, se pueden almacenar y acceder a varios tipos de datos sobre la marcha. El soporte incorporado de MongoDB para fragmentación también le permite escalar datos horizontalmente en múltiples servidores. Además, brinda la flexibilidad necesaria para fusionar cientos de fuentes de datos en una sola vista para el análisis en tiempo real y la integración de datos.

Gestión de Contenido

El modelo de documento no estructurado de MongoDB lo convierte en una excelente opción para la gestión de contenido y la entrega de sitios web de comercio electrónico, publicaciones online y sistemas de gestión de contenido web. Su modelo de datos flexible facilita el almacenamiento de varios tipos de contenido, incluidas imágenes, texto y video, así como metadatos.

Todo el contenido relacionado se almacena en un solo documento, lo que facilita añadir nuevas funciones y atributos MongoDB también se puede usar para almacenar contenido generado por el usuario, como comentarios, que se pueden analizar y usar como orientación del desarrollo de contenido futuro.

Respuesta a cuatro preguntas sobre MongoDB

¿Qué diferencia MongoDB de MySQL?

MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) mantenido por Oracle. Utiliza un lenguaje de consulta estructurado (SQL), que representa datos en tablas y filas predefinidas. MySQL requiere el operador JOIN para recuperar datos de tablas relacionadas. MySQL no permite la replicación o fragmentación efectiva.

MongoDB es una base de datos multiplataforma de código abierto mantenida por MongoDB, Inc. Es una base de datos basada en documentos que tiene como objetivo manejar las demandas de datos de las aplicaciones de software modernas. MongoDB usa JavaScript como lenguaje de consulta y representa los datos como documentos JSON. No requiere un esquema predefinido, lo que significa que los documentos de una misma colección pueden tener diferentes estructuras.

¿MongoDB es más rápido que MySQL?

MySQL usa operaciones JOIN para acceder y consultar los datos relacionados en varias tablas. Si bien esto minimiza la duplicación de datos, genera millones de lecturas y escrituras que pueden afectar el rendimiento.

El modelo de documentos de MongoDB almacena datos relacionados juntos, lo que le permite recuperar documentos más rápidamente que MySQL. Utilizando la replicación maestra y esclava, MongoDB puede procesar grandes cantidades de datos no estructurados de manera mucho más rápida que MySQL.

¿Cuándo debería usar MongoDB en lugar de MySQL?

Optar por MongoDB o MySQL dependerá de sus casos de uso específicos y necesidades de negocio, pero MongoDB ofrece algunas ventajas sobre MySQL, como, por ejemplo:

  • Diseño orientado a documentos: como MongoDB es una base de datos NoSQL, almacena los datos como documentos en lugar de usar un formato relacional. Esto lo hace más flexible y adaptable a los escenarios comerciales del mundo real. Por el contrario, el esquema de datos relacionales de MySQL está predefinido, lo que lo hace rígido e inflexible.
  • Balanceo de Carga: MongoDB admite el equilibrio de carga mediante la fragmentación, lo que permite que los datos se escalen horizontalmente. La fragmentación puede dividir los datos en múltiples instancias de MongoDB y múltiples servidores para equilibrar la carga en caso de un fallo de hardware o para mejorar el rendimiento.
  • Consultas Ad hoc: MongoDB admite consultas ad hoc con búsquedas por campo, consultas de intervalo y expresiones regulares. Las consultas pueden devolver campos específicos dentro de un documento.

¿Qué base de datos es mejor, MySQL o MongoDB?

MongoDB y MySQL son sistemas de gestión de bases de datos intrínsecamente diferentes, pero ambos sobresalen en situaciones específicas.

MongoDB permite a las organizaciones crear aplicaciones más rápidamente y es adecuado para manejar varios tipos y grandes cantidades de datos. Utilice MongoDB cuando necesite alta disponibilidad de datos, flexibilidad de esquema, la capacidad de escalar horizontalmente rápidamente o la capacidad de admitir grandes necesidades analíticas y de datos.

MySQL es una mejor opción si su esquema de datos es estable y no necesita almacenar datos no estructurados. Utilice MySQL si necesita una alta tasa de transacciones, la seguridad que viene con la integridad referencial o si tiene una estructura de datos que probablemente no cambie.

Acelerar las cargas de trabajo de la base de datos de código abierto con Pure

Con conmutación por error automática y escalado horizontal, MongoDB es una base de datos de código abierto creada para aplicaciones modernas. Su modelo de datos de documentos es compatible con JSON y se asigna naturalmente a lenguajes orientados a objetos, lo que simplifica el desarrollo. Su lenguaje de consulta es fácil de aprender y usar para los desarrolladores.

Modernice su almacenamiento con FlashBlade® de Pure Storage®, la solución de almacenamiento all-flash más avanzada del sector para consolidar los datos de los archivos y los objetos rápidos. FlashBlade ofrece:

  • Arquitectura Scale-out Agile: FlashBlade gestiona decenas de miles de millones de archivos y objetos, con un máximo rendimiento y unos servicios de datos completos.
  • Consolidación de cargas de trabajo simplificada: implemente, actualice y administre FlashBlade con Pure1®.
  • Rendimiento all-flash: obtenga un rendimiento y un paralelismo masivos con un rendimiento multidimensional constante mediante el almacenamiento rápido de archivos y objetos FlashBlade.
11/2024
How Healthy Is Your Data Platform Really?
Complete this self-guided wellness check to help determine if your data platform can successfully adapt with your organization into the future.
Infografía
1 página
CONTACTAR CON NOSOTROS
¿Preguntas, comentarios?

¿Tiene alguna pregunta o comentario sobre los productos o las certificaciones de Pure?  Estamos aquí para ayudarle.

Programe una Demostración

Programe una demostración en vivo y vea personalmente cómo Pure puede ayudarle a convertir sus datos en unos resultados potentes. 

Llámenos al: +34 51 889 8963

Medios de comunicaciónpr@purestorage.com

 

Castellana 81

28046 Madrid

Oficinas Pure: 1415 y 1417 (planta 14)

info@purestorage.com

CERRAR
Your Browser Is No Longer Supported!

Older browsers often represent security risks. In order to deliver the best possible experience when using our site, please update to any of these latest browsers.