Skip to Content

O que é o 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.

O MongoDB é um banco de dados NoSQL de código aberto. Como um banco de dados não relacional, ele pode processar dados estruturados, semiestruturados e não estruturados. Ele usa um modelo de dados não relacional e orientado a documentos e uma linguagem de consulta não estruturada.

O MongoDB é altamente flexível e permite combinar e armazenar vários tipos de dados. Ele também armazena e lida com quantidades maiores de dados do que os bancos de dados relacionais tradicionais. O MongoDB usa um formato de armazenamento de documentos chamado BSON, que é uma forma binária de JSON (JavaScript Object Notation, notação de objetos JavaScript) que pode acomodar mais tipos de dados.

Como funciona o MongoDB?

O MongoDB armazena objetos de dados em coleções e documentos em vez de tabelas e linhas usadas em bancos de dados relacionais tradicionais. As coleções compreendem conjuntos de documentos, que são equivalentes a tabelas em um banco de dados relacional. Os documentos consistem em pares de valor-chave, que são a unidade básica de dados no MongoDB .

A estrutura de um documento pode ser alterada simplesmente adicionando novos campos ou excluindo os existentes. Os documentos podem definir uma chave primária como um identificador exclusivo, e os valores podem ser uma variedade de tipos de dados, incluindo outros documentos, matrizes e matrizes de documentos.

Como funciona a pesquisa de texto do MongoDB?

Um recurso importante do MongoDB é a pesquisa de texto, que pode consultar campos de string para texto ou palavras específicas. Uma pesquisa de texto pode ser realizada usando um índice de texto ou o operador $text.

Um índice de texto pode ser uma string ou um array de elementos de string. Para realizar uma consulta de pesquisa de texto, a coleção deve conter um índice de texto. Uma coleção só pode ter um índice de texto e um único índice de texto pode ser aplicado a vários campos.

Uma pesquisa também pode ser realizada em uma coleção com um índice de texto usando o operador $text. O operador de $texto tokeniza cada sequência de pesquisa com espaço em branco e trata todas as pontuações, exceto “–” e “\” como delimitadores. Depois que a sequência de pesquisa é tokenizada, o operador executa a operação lógica OU nos tokens.

Três exemplos de consulta MongoDB

O MongoDB usa o MongoDB Query Language (MQL) para recuperar dados do banco de dados. É fácil de usar e funciona de maneira semelhante ao SQL com operações CRUD para criar, ler, atualizar e excluir documentos. Os nomes das funções seguem a sintaxe:

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

A seguir, três exemplos que demonstram isso na prática:

INSERIR: Crie ou insira um novo documento em uma coleção. Se a coleção não existir, uma nova coleção será criada.

        db.collection.insertOne() insere um documento em uma coleção.

        db.collection.insertMany() insere vários documentos em uma coleção de uma só vez.

Veja como é inserir um documento na coleção de clientes:

        db.customer.insertOne (

        {

        nome: “Jane”,

        sobrenome: “Motivo”

        Endereço: “232 Petunia Drive, Atlanta, GA, 30311”

        }

ENCONTRE: Isso consulta um conjunto de documentos. Os filtros e critérios de consulta podem ser aplicados para encontrar documentos específicos.

        db.collection.find()

O código a seguir encontra todos os documentos na coleção de clientes:

        db.customer.find()

ATUALIZAÇÃO: Isso modifica documentos existentes em uma coleção.

        db.collection.updateOne()

        db.collection.updateMany()

        db.collection.replaceOne()

Veja como você atualizaria um documento na coleção de clientes:

        db.customer.updateOne(

        { firstname: “Janeiro” },

                       {

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

                        }

        )

Três principais vantagens do MongoDB

Flexibilidade

O MongoDB tem uma arquitetura de esquema dinâmico que funciona com armazenamento e dados não estruturados. Como os dados são armazenados em documentos flexíveis semelhantes a JSON, o esquema do banco de dados não precisa ser predefinido e os esquemas podem ser modificados dinamicamente sem causar tempo de inatividade.

Com o formato de dados BSON do MongoDB, os objetos em uma coleção podem ter diferentes conjuntos de campos e quase qualquer tipo de estrutura de dados pode ser modelado e manipulado. Por esse motivo, o modelo de banco de dados flexível do MongoDB é especialmente benéfico à medida que os requisitos de negócios e dados mudam.

Sharding

O MongoDB oferece expansão horizontal por meio de um processo chamado sharding. O sharding divide dados de um grande conjunto de dados e os distribui em vários servidores. Se um servidor não consegue lidar com uma grande carga de dados, ele pode ser automaticamente dividido e distribuído sem interromper o processamento de dados.

Melhor desempenho

O MongoDB armazena dados na RAM para acesso mais rápido aos dados e melhor desempenho ao executar consultas. Ele coleta dados diretamente da RAM em vez do disco rígido, tornando as leituras e gravações de dados mais rápidas. A estrutura de dados não relacional do MongoDB também significa que ele requer menos capacidade de processamento para pesquisar e recuperar dados do que um banco de dados relacional.

Quando você deve usar o MongoDB?

Análise em tempo real

Como um banco de dados NoSQL, o MongoDB é uma boa escolha para integrar e processar Big Data (ou seja, enormes quantidades de dados diversos grandes demais para serem processados por bancos de dados relacionais tradicionais).

Como o MongoDB não tem esquema, vários tipos de dados podem ser armazenados e acessados rapidamente. O suporte integrado do MongoDB para sharding também permite expandir os dados horizontalmente em vários servidores. Além disso, oferece a flexibilidade necessária para combinar centenas de fontes de dados em uma única visualização para análise e integração de dados em tempo real.

Gerenciamento de conteúdo

O modelo de documento não estruturado do MongoDB o torna uma excelente opção para gerenciamento de conteúdo e entrega de sites de comércio eletrônico, publicações online e sistemas de gerenciamento de conteúdo da Web. Seu modelo de dados flexível facilita o armazenamento de vários tipos de conteúdo, incluindo imagens, texto e vídeo, bem como metadados.

Todo o conteúdo relacionado é armazenado em um único documento, facilitando a adição de novos recursos e atributos. O MongoDB também pode ser usado para armazenar conteúdo gerado pelo usuário, como comentários, que podem ser analisados e usados para orientar o desenvolvimento de conteúdo futuro.

Quatro perguntas do MongoDB respondidas

O que é MongoDB vs. MySQL?

O MySQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) mantido pela Oracle. Ele usa uma linguagem de consulta estruturada (SQL, Structured query language), que representa dados em tabelas e linhas predefinidas. O MySQL exige que o operador JUNTE-SE para recuperar dados de tabelas relacionadas. O MySQL não permite replicação ou sharding eficazes.

O MongoDB é um banco de dados multiplataforma de código aberto mantido pela MongoDB , Inc. É um banco de dados baseado em documentos que visa lidar com as demandas de dados de aplicativos de software modernos. O MongoDB usa JavaScript como linguagem de consulta e representa dados como documentos JSON. Não requer um esquema predefinido, o que significa que os documentos na mesma coleção podem ter estruturas diferentes.

O MongoDB é mais rápido do que o MySQL?

O MySQL usa operações JOIN para acessar e consultar dados relacionados em várias tabelas. Embora isso minimize a duplicação de dados, resulta em milhões de leituras e gravações que podem afetar o desempenho.

O modelo de documentos do MongoDB armazena dados relacionados juntos, permitindo recuperar documentos mais rapidamente do que o MySQL. Usando replicação escrava e mestre, o MongoDB pode processar grandes quantidades de dados não estruturados muito mais rapidamente do que o MySQL.

Quando você deve usar o MongoDB em vez do MySQL?

Se você escolher MongoDB ou MySQL dependerá de seus casos de uso específicos e necessidades de negócios, mas o MongoDB oferece algumas vantagens em relação ao MySQL . Entre elas:

  • Design orientado a documentos: como o MongoDB é um banco de dados NoSQL, ele armazena dados como documentos em vez de em um formato relacional. Isso a torna mais flexível e adaptável a cenários de negócios reais. Por outro lado, o esquema de dados relacionais do MySQL é predefinido, tornando-o rígido e inflexível.
  • Balanceamento de carga: o MongoDB é compatível com balanceamento de carga por meio de sharding, o que permite que os dados sejam dimensionados horizontalmente. O sharding pode dividir dados entre várias instâncias do MongoDB e vários servidores para equilibrar a carga no caso de uma falha de hardware ou para melhorar o desempenho.
  • Consultas ad hoc: o MongoDB é compatível com consultas ad hoc com pesquisas por campo, consultas de intervalo e expressões regulares. As consultas podem retornar campos específicos em um documento.

Qual banco de dados é o melhor: MySQL ou MongoDB?

O MongoDB e o MySQL são sistemas de gerenciamento de banco de dados inerentemente diferentes, mas ambos se destacam em cenários específicos.

O MongoDB permite que as organizações criem aplicativos com mais rapidez e é adequado para lidar com vários tipos e grandes quantidades de dados. Use o MongoDB quando precisar de alta disponibilidade de dados, flexibilidade de esquema, capacidade de expansão horizontal rápida ou capacidade de dar suporte a necessidades de Big Data e análise.

O MySQL é uma escolha melhor se o seu esquema de dados for estável e você não precisar armazenar dados não estruturados. Use o MySQL se precisar de uma alta taxa de transação, da segurança que vem com integridade referencial ou se tiver uma estrutura de dados que provavelmente não mudará.

Acelere cargas de trabalho de banco de dados de código aberto com a Pure

Com failover automático e expansão horizontal, o MongoDB é um banco de dados de código aberto desenvolvido para aplicativos modernos. Seu modelo de dados de documentos é compatível com JSON e mapeia naturalmente para linguagens orientadas a objetos, simplificando o desenvolvimento. Sua linguagem de consulta é fácil para os desenvolvedores aprenderem e usarem.

Modernize seu armazenamento com o FlashBlade ® da Pure Storage, a solução de armazenamento totalmente flash mais avançada do setor para consolidar dados rápidos de arquivos e objetos. FlashBlade O FlashBlade oferece:

  • Arquitetura de expansão horizontal ágil: O FlashBlade lida com dezenas de bilhões de arquivos e objetos com desempenho máximo e serviços avançados de dados.
  • consolidação da carga de trabalho trabalho: implante, atualize e gerencie o FlashBlade com o Pure1®.
  • Desempenho totalmente flash: obtenha taxa de transferência e paralelismo massivos com desempenho multidimensional uniforme por meio do armazenamento rápido de arquivos e objetos do 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.
Infográfico
1 Página
ENTRE EM CONTATO
Dúvidas ou comentários?

Tem dúvidas ou comentários sobre produtos ou certificações da Pure?  Estamos aqui para ajudar.

Agende uma demonstração

Agende uma demonstração ao vivo e veja você mesmo como a Pure pode ajudar a transformar seus dados em resultados poderosos. 

Telefone: 55-11-2844-8366

Imprensa: pr@purestorage.com

 

Sede da Pure Storage

Av. Juscelino Kubitschek, 2041

Torre B, 5º andar - Vila Olímpia

São Paulo, SP

04543-011 Brasil

info@purestorage.com

FECHAR
Seu navegador não é mais compatível.

Navegadores antigos normalmente representam riscos de segurança. Para oferecer a melhor experiência possível ao usar nosso site, atualize para qualquer um destes navegadores mais atualizados.