Menu Docs
Página inicial do Docs
/ /

Dados de referência em seu esquema MongoDB

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

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 coleções e não duplicados.

Embora um modelo de dados desnormalizado funcione para a maioria dos casos de uso no MongoDB, considere usar referências em vez de dados incorporados se:

  • 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.

  • É preciso que você represente relacionamentos complexos de muitos para muitos ou grandes conjuntos de dados hierárquicos.

  • Você precisa consultar frequentemente a entidade relacionada por conta própria.

Em determinadas situações, você pode optar por armazenar informações relacionadas em várias coleções em vez de em uma única coleção.

Considere uma coleção de amostras logs que armazena documentos de log para vários ambientes e aplicativos. A coleção logs contém documentos com o seguinte formato:

{ log: "dev", ts: ..., info: ... }
{ log: "debug", ts: ..., info: ...}

Se o número total de documentos for baixo, é possível agrupar os documentos em coleções por tipo. Para logs, considere manter coleções distintas de log, por exemplo, logs_dev e logs_debug.

Geralmente, ter um grande número de collections não tem multa de desempenho significativa e resulta em bom desempenho. Collections distintas são muito importantes para o processamento em lote de alta taxa de transferência.

Ao usar modelos que têm um grande número de coleções, considere os seguintes comportamentos:

  • Cada coleção tem uma sobrecarga mínima de alguns kilobytes.

  • Operações de leitura não indexadas podem consumir uma grande quantidade de memória.

  • Para cada banco de dados, um único arquivo de namespace <database>.ns (como) armazena todos os metadados desse banco de dados. Cada índice e coleção tem sua própria entrada no arquivo de namespace . Consulte os limites de comprimento do namespace de locais para limitações específicas.

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

Para ver um exemplo dos modelos de dados normalizados, consulte Modele relacionamentos de um para muitos com referências de documentos.

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

Voltar

Dados incorporados

Receber um selo de habilidade

Mestre "Relacional para modelo de documento " de grátis!

Saiba mais

Nesta página