O que é a MongoDB? Archiestrutura, recursos e exemplo
⚡ Resumo Inteligente
MongoDB É um banco de dados NoSQL orientado a documentos, usado para armazenamento de grandes volumes de dados, que utiliza coleções e documentos em vez de tabelas e linhas. Este recurso explica MongoDB Funcionalidades, um exemplo de documento, componentes-chave da arquitetura, razões para utilizá-lo, modelagem de dados e como ele difere de um banco de dados relacional.

O que é a MongoDB?
MongoDB é um banco de dados NoSQL orientado a documentos usado para armazenamento de dados de alto volume. Em vez de usar tabelas e linhas como nos bancos de dados relacionais tradicionais, MongoDB faz uso de coleções e documentos. Os documentos consistem em pares de valores-chave que são a unidade básica de dados em MongoDBAs coleções contêm conjuntos de documentos e funções, o que é equivalente às tabelas de um banco de dados relacional. MongoDB é um banco de dados que surgiu em meados dos anos 2000.
MongoDB Diferenciais
- Cada banco de dados contém coleções que, por sua vez, contêm documentos. Cada documento pode ser diferente, com um número variável de campos. O tamanho e o conteúdo de cada documento também podem variar.
- A estrutura do documento está mais alinhada com a forma como os desenvolvedores constroem suas classes e objetos em suas respectivas linguagens de programação. Os desenvolvedores costumam dizer que suas classes não são linhas e colunas, mas têm uma estrutura clara com pares de valores-chave.
- As linhas (ou documentos como chamados em MongoDBNão precisam ter um esquema definido previamente. Em vez disso, os campos podem ser criados dinamicamente.
- O modelo de dados disponível dentro MongoDB Permite representar relações hierárquicas, armazenar matrizes e outras estruturas mais complexas com maior facilidade.
- Global – As MongoDB Os ambientes são altamente escaláveis. Empresas em todo o mundo definiram clusters, alguns com mais de 100 nós e milhões de documentos no banco de dados.
MongoDB Exemplo
O exemplo abaixo mostra como um documento pode ser modelado em MongoDB.
- O campo _id é adicionado por MongoDB para identificar exclusivamente o documento na coleção.
- O que você pode observar é que os dados do pedido (ID do pedido, produto e quantidade), que em um SGBD relacional normalmente seriam armazenados em uma tabela separada, são na verdade armazenados como um documento incorporado na própria coleção. MongoDBEssa é uma das principais diferenças na forma como os dados são modelados em MongoDB.
Principais componentes de MongoDB Archiarquitetura
Abaixo estão alguns dos termos comuns usados em MongoDB:
- _id – Este é um campo obrigatório em todos MongoDB documento. O campo _id representa um valor único no MongoDB documento. O campo _id é como a chave primária do documento. Se você criar um novo documento sem um campo _id, MongoDB O campo será criado automaticamente. Por exemplo, se observarmos a tabela de clientes acima, MongoDB Adicionará um identificador único de 24 dígitos a cada documento da coleção.
| _Eu ia | Identificação do Cliente | Nome do cliente | Código do pedido |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Coleção – Este é um grupoping of MongoDB documentos. Uma coleção é o equivalente a uma tabela criada em qualquer outro SGBD relacional, como... Oracle ou MS SQL. Uma coleção existe dentro de um único banco de dados. Como visto na introdução, as coleções não impõem nenhum tipo de estrutura.
- Cursor – Este é um ponteiro para o conjunto de resultados de uma consulta. Os clientes podem iterar através de um cursor para recuperar resultados.
- banco de dados – Este é um contêiner para coleções, semelhante a um SGBD relacional, onde é um contêiner para tabelas. Cada banco de dados recebe seu próprio conjunto de arquivos no sistema de arquivos. MongoDB servidor pode armazenar vários bancos de dados.
- ISO – Um recorde em MongoDB Uma coleção é basicamente chamada de documento. O documento, por sua vez, será composto por nomes de campos e seus valores.
- Campo – Um par nome-valor em um documento. Um documento pode ter zero ou mais campos. Os campos são análogos às colunas em bancos de dados relacionais. O diagrama a seguir mostra um exemplo de campos com pares chave-valor. Assim, no exemplo abaixo, CustomerID e 11 são um dos pares chave-valor definidos no documento.
- JSON – Isso é conhecido como JavaScript Notação de objeto. Este é um formato de texto simples legível por humanos para expressar dados estruturados. JSON é atualmente compatível com muitas linguagens de programação.
Apenas uma observação rápida sobre a principal diferença entre o campo _id e um campo de coleção normal. O campo _id é usado para identificar exclusivamente os documentos em uma coleção e é adicionado automaticamente pelo MongoDB quando a coleção é criada.
Por que usar MongoDB?
Abaixo estão alguns dos motivos pelos quais você deve começar a usar MongoDB:
- Orientado a documentos - Desde a MongoDB é um NoSQL banco de dados do tipo, em vez de ter os dados em um formato do tipo relacional, ele armazena os dados em documentos. Isto faz MongoDB Muito flexível e adaptável a situações e requisitos do mundo empresarial real.
- consultas ad hoc - MongoDB suporta pesquisa por campo, consultas de intervalo e pesquisas de expressão regular. Consultas podem ser feitas para retornar campos específicos dentro de documentos.
- Indexação – É possível criar índices para melhorar o desempenho das pesquisas dentro do sistema. MongoDB. Qualquer campo em um MongoDB documento pode ser indexado.
- réplica - MongoDB pode proporcionar alta disponibilidade com conjuntos de réplicas. Um conjunto de réplicas consiste em dois ou mais MongoDB Cada membro do conjunto de réplicas pode atuar como réplica primária ou secundária a qualquer momento. A réplica primária é o servidor principal que interage com o cliente e executa todas as operações de leitura/gravação. As réplicas secundárias mantêm uma cópia dos dados da réplica primária usando replicação integrada. Quando uma réplica primária falha, o conjunto de réplicas alterna automaticamente para a réplica secundária, que então se torna o servidor primário.
- Balanceamento de carga - MongoDB usa o conceito de fragmentação para escalar horizontalmente, dividindo os dados em vários MongoDB instâncias. MongoDB pode ser executado em vários servidores, equilibrando a carga e/ou duplicando dados para manter o sistema funcionando em caso de falha de hardware.
Modelagem de dados em MongoDB
Como vimos na seção de introdução, os dados em MongoDB tem um esquema flexível. Ao contrário de SQL bancos de dados, onde você deve ter o esquema de uma tabela declarado antes de inserir os dados, MongoDBAs coleções de não impõem a estrutura do documento. Esse tipo de flexibilidade é o que faz MongoDB tão poderoso.
Ao modelar dados em MongoDBLembre-se do seguinte:
- Quais são as necessidades da aplicação? – Analise as necessidades de negócio da aplicação e verifique quais dados e tipos de dados são necessários. Com base nisso, assegure-se de que a estrutura do documento seja definida adequadamente.
- Quais são os padrões de recuperação de dados? – Se você prevê um uso intenso de consultas, considere a utilização de índices em seu modelo de dados para melhorar a eficiência das consultas.
- Estão ocorrendo inserções, atualizações e remoções frequentes no banco de dados? Reconsidere o uso de índices ou incorpore o particionamento (sharding), se necessário, em seu projeto de modelagem de dados para melhorar a eficiência geral. MongoDB ambiente.
Diferença entre MongoDB & RDBMS
Abaixo estão algumas das principais diferenças de termos entre MongoDB e SGBD relacional:
| RDBMS | MongoDB | Diferença |
|---|---|---|
| mesa | Coleção | In RDBMS, a tabela contém as colunas e linhas que são usadas para armazenar os dados, enquanto em MongoDB Essa mesma estrutura é conhecida como coleção. A coleção contém documentos que, por sua vez, contêm campos, que, por sua vez, são pares chave-valor. |
| Linha | ISO | No RDBMS, a linha representa um único item de dados estruturado implicitamente em uma tabela. Em MongoDB, os dados são armazenados em documentos. |
| Coluna | Campo | No RDBMS, a coluna denota um conjunto de valores de dados. Estes em MongoDB são conhecidos como campos. |
| Junta | Documentos embutidos | Em um SGBD relacional, os dados às vezes estão espalhados por várias tabelas e, para exibir uma visão completa de todos os dados, é comum realizar uma junção entre as tabelas para obter os dados. MongoDBOs dados são normalmente armazenados em uma única coleção, mas separados por meio de documentos incorporados. Portanto, não existe o conceito de junções em um banco de dados. MongoDB. |
Além das diferenças de terminologia, algumas outras diferenças são apresentadas abaixo:
- Os bancos de dados relacionais são conhecidos por impor a integridade dos dados. Este não é um requisito explícito no MongoDB.
- O RDBMS exige que os dados sejam normalizado Primeiramente, para evitar registros órfãos e duplicados. A normalização de dados, por sua vez, exige mais tabelas, o que resulta em mais junções de tabelas e, consequentemente, mais chaves e índices. Conforme os bancos de dados crescem, o desempenho pode começar a se tornar um problema. Novamente, isso não é um requisito explícito em MongoDB. MongoDB é flexível e não precisa que os dados sejam normalizados primeiro.


