Skip to Content

¿Qué es MongoDB?

MongoDB is an open source NoSQL database. As a non-relational database, it can process structured, semi-structured, and unstructured data. It uses a non-relational, document-oriented data model and a non-structured query language.

MongoDB is highly flexible and enables you to combine and store multiple types of data. It also stores and handles larger amounts of data than traditional relational databases. MongoDB uses a document storage format called BSON, which is a binary form of JSON (JavaScript Object Notation) that can accommodate more data types.

How Does MongoDB Work?

MongoDB stores data objects in collections and documents instead of the tables and rows used in traditional relational databases. Collections comprise sets of documents, which are equivalent to tables in a relational database. Documents consist of key-value pairs, which are the basic unit of data in MongoDB.

The structure of a document can be changed by simply adding new fields or deleting existing ones. Documents can define a primary key as a unique identifier, and values can be a variety of data types, including other documents, arrays, and arrays of documents.

How Does MongoDB Text Search Work?

A key feature of MongoDB is the text search, which can query string fields for specific text or words. A text search can be performed using a text index or the $text operator.

A text index can either be a string or an array of string elements. To perform a text search query, the collection must contain a text index. A collection can only have one text index, and a single text index can be applied to multiple fields.

A search can also be performed on a collection with a text index using the $text operator. The $text operator tokenizes each search string with white space and treats all punctuation except for “–” and “\” as delimiters. After the search string is tokenized, the operator performs the logical OR operation on the tokens.

Three MongoDB Query Examples

MongoDB uses MongoDB Query Language (MQL) to retrieve data from the database. It’s easy to use and works in a way that’s similar to SQL with CRUD operations for creating, reading, updating, and deleting documents. Function names follow the syntax:

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

The following are three examples that demonstrate this in practice:

INSERT: Create or insert a new document into a collection. If the collection does not exist, a new collection will be created.

        db.collection.insertOne() inserts one document into a collection.

        db.collection.insertMany() inserts multiple documents into a collection at once.

Here’s what inserting one document into the customer collection looks like:

        db.customer.insertOne (

        {

        firstname: “Jane”,

        lastname: “Mason”

        Address: “232 Petunia Drive, Atlanta, GA, 30311”

        }

FIND: This queries a collection of documents. Query filters and criteria can be applied to find specific documents.

        db.collection.find()

The following code finds all the documents in the customer collection:

        db.customer.find()

UPDATE: This modifies existing documents in a collection.

        db.collection.updateOne()

        db.collection.updateMany()

        db.collection.replaceOne()

Here’s how you’d update one document in the customer collection:

        db.customer.updateOne(

        { firstname: “Jane” },

                       {

                                $set: { “address”, “5 Lavender Ave, Atlanta, GA, 30311”}

                        }

        )

Top Three Advantages of MongoDB

Flexibility

MongoDB has a dynamic schema architecture that works with non-structured data and storage. Because data is stored in flexible, JSON-like documents, the database schema doesn’t have to be predefined and schemas can be modified dynamically without causing downtime.

With MongoDB’s BSON data format, objects in one collection can have different sets of fields, and almost any type of data structure can be modeled and manipulated. For this reason, MongoDB’s flexible database model is especially beneficial as business and data requirements change.

Sharding

MongoDB offers horizontal scaling through a process called sharding. Sharding divides data from a large data set and distributes it across multiple servers. If one server can’t handle a large load of data, it can be automatically divided and distributed without interrupting data processing.

Greater Performance

MongoDB stores data in RAM for faster data access and greater performance when executing queries. It collects data directly from RAM rather than the hard disk, making data reads and writes faster. MongoDB’s non-relational data structure also means that it requires less processing power to search and retrieve data than a relational database.

When Should You Use MongoDB?

Real-Time Analytics

As a NoSQL database, MongoDB is a good choice for integrating and processing big data (i.e., enormous amounts of diverse data too large to be processed by traditional relational databases).

Because MongoDB is schemaless, various data types can be stored and accessed on the fly. MongoDB’s built-in support for sharding also allows it to scale data horizontally across multiple servers. In addition, it provides the flexibility needed to merge hundreds of data sources into a single view for real-time analytics and data integration.

Content Management

MongoDB’s non-structured document model makes it an excellent option for content management and delivery of e-commerce websites, online publications, and web content management systems. Its flexible data model makes it easy to store several types of content, including images, text, and video, as well as metadata.

All related content is stored in a single document, making it easy to add new features and attributes. MongoDB can also be used to store user-generated content like comments, which can be analyzed and used to guide the development of future content.

Four MongoDB Questions Answered

What Is MongoDB vs. MySQL?

MySQL is a relational database management system (RDBMS) maintained by Oracle. It uses a structured query language (SQL), which represents data in predefined tables and rows. MySQL requires the JOIN operator to retrieve data from related tables. MySQL doesn’t allow for effective replication or sharding.

MongoDB is an open source cross-platform database maintained by MongoDB, Inc. It’s a document-based database that aims to handle the data demands of modern software applications. MongoDB uses JavaScript as the query language and represents data as JSON documents. It doesn’t require a predefined schema, which means that documents in the same collection can have different structures.

Is MongoDB Faster than MySQL?

MySQL uses JOIN operations to access and query related data across multiple tables. While this minimizes data duplication, it results in millions of reads and writes that can affect performance.

MongoDB’s document model stores related data together, allowing it to retrieve documents faster than MySQL. Using slave and master replication, MongoDB can process large amounts of unstructured data much faster than MySQL.

When Should You Use MongoDB Instead of MySQL?

Whether you choose MongoDB or MySQL will depend on your specific use cases and business needs, but MongoDB offers some advantages over MySQL. These include:

  • Document-oriented design: Because MongoDB is a NoSQL database, it stores data as documents instead of in a relational format. This makes it more flexible and adaptable to real-world business scenarios. In contrast, MySQL’s relational data schema is predefined, making it rigid and inflexible.
  • Load balancing: MongoDB supports load balancing through sharding, which enables data to scale horizontally. Sharding can split data across multiple MongoDB instances and multiple servers to balance the load in the event of a hardware failure or to enhance performance.
  • Ad hoc queries: MongoDB supports ad hoc queries with searches by field, range queries, and regular expressions. Queries can return specific fields within a document.

Which Database Is Best: MySQL or MongoDB?

MongoDB and MySQL are inherently different database management systems, but both excel in specific scenarios.

MongoDB allows organizations to build applications faster and is suitable for handling various types and large amounts of data. Use MongoDB when you need high data availability, schema flexibility, the ability to scale out quickly, or the ability to support big data and analytical needs.

MySQL is a better choice if your data schema is stable and you don’t need to store unstructured data. Use MySQL if you require a high transaction rate, the security that comes with referential integrity, or if you have a data structure that isn’t likely to change.

Accelerate Open Source Database Workloads with Pure

With automatic failover and horizontal scaling, MongoDB is an open source database built for modern applications. Its document data model supports JSON and maps naturally to object-oriented languages, simplifying development. Its query language is easy for developers to learn and use.

Modernize your storage with Pure Storage® FlashBlade®, the industry's most advanced all-flash storage solution for consolidating fast file and object data. FlashBlade offers:

  • Agile scale-out architecture: FlashBlade handles tens of billions of files and objects with maximum performance and rich data services.
  • Simplified workload consolidation: Deploy, update, and manage FlashBlade with Pure1®.
  • All-flash performance: Gain massive throughput and parallelism with consistent multidimensional performance through FlashBlade fast file and object storage.

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 altamente flexible y le permite combinar y almacenar varios tipos de datos. También almacena y maneja grandes cantidades de datos que las bases de datos relacionales tradicionales. MongoDB utiliza un formato de almacenamiento de documentos llamado BSON, que es una forma binaria de JSON (notación de objetos JavaScript) que puede adaptarse a 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 utilizadas en las bases de datos relacionales tradicionales. Las cobranzas comprenden conjuntos de documentos, que son equivalentes a las 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 agregando nuevos campos o eliminando los existentes. Los documentos pueden definir una clave primaria como un identificador único, y los valores pueden ser una variedad de tipos de datos, incluidos otros documentos, arreglos y arreglos de documentos.

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

Una característica clave de MongoDB es la búsqueda de texto, que puede consultar campos de cadena para texto o palabras específicos. 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 realizar 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 se puede aplicar un solo índice de texto a varios campos.

También se puede realizar una búsqueda en una colección con un índice de texto usando el operador $text. El operador de $text tokeniza cada cadena de búsqueda con espacio en blanco y trata toda puntuación, excepto “–” y “\” como delimitadores. Después de tokenizar la cadena de búsqueda, el operador realiza la operación lógica de quirófano 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 de CRUD para crear, leer, actualizar y eliminar documentos. Los nombres de funciones siguen la sintaxis:

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

Los siguientes son tres ejemplos que demuestran esto en la práctica:

INSERTE: Cree o inserte 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.insertMuy() inserta varios documentos en una colección a la vez.

Así es como se ve insertar un documento en la colección de clientes:

        db.customer.insertOne (

        {

        nombre: “Jane”,

        apellido: “Masculino”

        Dirección: “232 Petunia Drive, Atlanta, GA, 30311”

        }

ENCUENTRE: Esto consulta un conjunto de documentos. Se pueden aplicar filtros de consulta y criterios 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()

ACTUALIZACIÓN: Esto modifica los documentos existentes en una colección.

        db.collection.updateOne()

        db.collection.updateMuy()

        db.collection.replaceOne()

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

        db.customer.updateOne(

        {nombre: “Jane” },

                       {

                                $set: { “address”, “5 Lavender Ave, Atlanta, GA, 30311”}

                        }

        )

Las tres principales ventajas de MongoDB

Flexibilidad

MongoDB tiene una arquitectura de esquema dinámico que funciona con almacenamiento y datos no estructurados. Debido a que los datos se almacenan en documentos flexibles similares a JSON, el esquema de la base de datos no tiene que ser predefinido y los esquemas pueden modificarse 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 comerciales y de datos.

Raspado

MongoDB ofrece escala horizontal a través de un proceso llamado fragmentación. El fragmento divide los datos de un gran conjunto de datos y los distribuye en varios servidores. Si un servidor no puede manejar una gran carga de datos, se puede dividir y distribuir automáticamente sin interrumpir el procesamiento de datos.

Mayor rendimiento

MongoDB almacena datos en RAM para un acceso de datos más rápido y un mayor rendimiento al ejecutar consultas. Recopila datos directamente de RAM en lugar del disco duro, lo que hace que las lecturas y escrituras de datos sean más rápidas. La estructura de datos no relacionales de MongoDB también significa que requiere menos poder de procesamiento para buscar y recuperar datos que una base de datos relacional.

¿Cuándo debe usar MongoDB?

Análisis en tiempo real

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

Debido a que MongoDB no tiene esquemas, se pueden almacenar y acceder a varios tipos de datos sobre la marcha. La asistencia incorporada de MongoDB para sharding también le permite escalar datos horizontalmente en varios servidores. Además, proporciona la flexibilidad necesaria para combinar cientos de fuentes de datos en una sola vista para el análisis en tiempo real y la integración de datos.

Administración de contenido

El modelo de documentos no estructurados de MongoDB lo convierte en una excelente opción para la administración de contenido y la entrega de sitios web de comercio electrónico, publicaciones en línea y sistemas de administració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 agregar nuevas características y atributos. MongoDB también se puede usar para almacenar contenido generado por el usuario, como comentarios, que se pueden analizar y usar para guiar el desarrollo de contenido futuro.

Respuestas a cuatro preguntas de MongoDB

¿Qué es MongoDB frente a MySQL?

MySQL es un sistema de administració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 que el operador JOIN recupere datos de tablas relacionadas. MySQL no permite una 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 cuyo objetivo es manejar las demandas de datos de las aplicaciones de software modernas. MongoDB utiliza JavaScript como idioma de consulta y representa los datos como documentos JSON. No requiere un esquema predefinido, lo que significa que los documentos de la misma colección pueden tener estructuras diferentes.

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

MySQL utiliza las operaciones JOIN para acceder y consultar 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ápido que MySQL. Mediante la replicación esclava y maestra, MongoDB puede procesar grandes cantidades de datos no estructurados mucho más rápido que MySQL.

¿Cuándo debe usar MongoDB en lugar de MySQL?

Ya sea que elija MongoDB o MySQL dependerá de sus casos de uso y necesidades comerciales específicos, pero MongoDB ofrece algunas ventajas sobre MySQL. Entre ellas se incluyen:

  • Diseño orientado a documentos: debido a que MongoDB es una base de datos NoSQL, almacena datos como documentos en lugar de en un formato relacional. Esto lo hace más flexible y adaptable a 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.
  • Equilibrio de carga: MongoDB admite el equilibrio de carga a través del fragmentado, lo que permite que los datos se escalen horizontalmente. El fragmento puede dividir datos en varias instancias de MongoDB y varios servidores para equilibrar la carga en caso de una falla del hardware o para mejorar el rendimiento.
  • Consultas ad hoc: MongoDB admite consultas ad hoc con búsquedas por campo, consultas de rango y expresiones regulares. Las consultas pueden devolver campos específicos dentro de un documento.

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

MongoDB y MySQL son sistemas de administración de bases de datos inherentemente diferentes, pero ambos se destacan en escenarios específicos.

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

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

Acelere las cargas de trabajo de bases de datos de código abierto con Pure

Con conmutación por error automática y escalabilidad horizontal, MongoDB es una base de datos de código abierto diseñada para aplicaciones modernas. Su modelo de datos de documentos admite JSON y asigna de forma natural 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 Pure Storage ® FlashBlade ®, la solución de almacenamiento basado íntegramente en tecnología flash más avanzada de la industria para consolidar datos rápidos de objetos y archivos. FlashBlade ofrece:

  • Arquitectura ágil de escalabilidad horizontal: FlashBlade maneja decenas de miles de millones de archivos y objetos con el máximo rendimiento y servicios de datos enriquecidos.
  • consolidación de cargas de trabajo simplificada: Implemente, actualice y administre FlashBlade con Pure1®.
  • Rendimiento basado íntegramente en tecnología flash: Obtenga un rendimiento masivo y paralelismo con un rendimiento multidimensional consistente a través del almacenamiento rápido de objetos y archivos FlashBlade.
CONTÁCTENOS
¿Preguntas, comentarios?

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

Programe una demostración

Programe una demostración en vivo y compruebe usted mismo cómo Pure puede ayudarlo a transformar sus datos en potentes resultados. 

Llámenos: 800-976-6494

Medios de comunicación: pr@purestorage.com

 

Pure Storage, Inc.

2555 Augustine Dr.

Santa Clara, CA 95054

800-379-7873 (información general)

info@purestorage.com

CERRAR
¡Su navegador ya no es compatible!

Los navegadores más antiguos a menudo representan riesgos de seguridad. Para brindar la mejor experiencia posible al utilizar nuestro sitio, actualice a cualquiera de estos navegadores más recientes.