Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Dados incorporados versus referências

Nesta página

  • Modelos de dados incorporados
  • Casos de uso
  • Consultar dados incorporados
  • Referências
  • Casos de uso
  • Modelos de dados normalizados de query
  • Saiba mais

Modelos de dados eficazes oferecem suporte às necessidades do seu aplicativo. Uma decisão importante para o projeto de esquema é incorporar dados ou usar referências.

Você pode incorporar dados relacionados em um único documento. No exemplo seguinte, os campos contact e access são documentos incorporados:

Modelo de dados com campos incorporados que contêm todas as informações relacionadas.

Modelos de dados incorporados geralmente são desnormalizados, porque os dados acessados com frequência são duplicados em várias collections.

Os modelos de dados incorporados permitem que os aplicativos consultem informações relacionadas no mesmo registro de banco de dados. Como resultado, os aplicativos exigem menos queries e atualizações para concluir operações comuns.

Use modelos de dados incorporados nos seguintes cenários:

A incorporação oferece os seguintes benefícios:

  • Melhor desempenho para operações de leitura

  • A capacidade de recuperar dados relacionados em uma única operação de banco de dados

  • Capacidade de atualizar dados relacionados em uma única operação de escrita atômica

Para fazer query de dados em documentos incorporados, use a notação de pontos . Para obter exemplos de consulta de dados em matrizes e documentos incorporados, consulte:

Observação

Limite de tamanho do documento

Os documentos no MongoDB devem ser menores que 16 megabytes.

Para dados binários grandes, considere o GridFS.

As referências armazenam relacionamentos entre dados ao incluir links, chamados de referências, de um documento para outro. No exemplo a seguir, os documentos contact e access contêm uma referência ao documento user .

Modelo de dados usando referências para vincular documentos. Tanto o documento ``contact`` quanto o documento ``access`` contêm uma referência ao documento ``user``.

As referências resultam em modelos de dados normalizados porque os dados são divididos em várias collections e não duplicados.

Use referências para vincular dados relacionados nos seguintes cenários:

  • A incorporação resultaria na duplicação de dados, mas não traria vantagens suficientes de desempenho de leitura para superar as implicações da duplicação. Por exemplo, quando os dados incorporados mudam com frequência.

  • Você precisa representar relacionamentos complexos de muitos para muitos ou grandes conjuntos de dados hierárquicos.

  • A entidade relacionada é frequentemente consultada por conta própria. Por exemplo, se você tiver dados employee e department , considere incorporar informações de departamento nos documentos employee . No entanto, se você costuma executar query de uma lista de departamentos, seu aplicativo terá o melhor desempenho com uma coleção department separada que está vinculada à coleção employee com uma referência.

Para consultar dados normalizados em várias coleções, o MongoDB fornece os seguintes estágios de agregação:

Para obter um exemplo de modelos de dados normalizados, consulte Modele relacionamentos um-a-muitos com referências de documentos.

Para obter exemplos de vários modelos de árvore, consulte Estruturas de árvore modelo.

Para obter mais informações sobre modelagem de dados com o MongoDB, faça o download do Guia de Modernização de Aplicativos MongoDB.

O download inclui os seguintes recursos:

  • Apresentação sobre a metodologia de modelagem de dados com o MongoDB

  • Artigo técnico que aborda as melhores práticas e considerações para migrar de um modelo de dados SGBD para o MongoDB

  • Referenciar o esquema do MongoDB com seu equivalente em SGBD

  • Scorecard de modernização de aplicativos

← Conceitos de modelagem de dados