Design do Modelo de dados Realm
Modelos de dados eficazes oferecem suporte às necessidades do seu aplicação . A principal consideração para a estrutura de seus documentos é a decisão de incorporar ou usar referências.
Modelos de dados incorporados
Com o MongoDB, você pode incorporar dados relacionados em uma única estrutura ou documento. Esses esquemas são geralmente conhecidos como modelos "desnormalizados" e aproveitam os ricos documentos do MongoDB. Considere o seguinte diagrama:
Os modelos de dados incorporados permitem que os aplicativos armazenem informações relacionadas no mesmo registro de banco de dados. Como resultado, os aplicativos podem precisar emitir menos queries e atualizações para concluir operações comuns.
Em geral, use Modelo de dados Realm incorporados quando:
você tem relacionamentos "contém" entre entidades. Consulte Modelar relacionamentos um-para-um com documentos incorporados.
você tem relacionamentos um-para-muitos entre entidades. Nesses relacionamentos, os "muitos" ou documentos filho sempre aparecem com ou são exibidos no contexto do "um" ou documentos pai. Consulte Modelar relacionamentos um-para-muitos com documentos incorporados.
Em geral, a incorporação fornece melhor desempenho para operações de leitura, bem como a capacidade de solicitar e recuperar dados relacionados em uma única operação de reconhecimento de data center. Modelo de dados Realm incorporados possibilitam a atualização de dados relacionados em uma única operação de gravação atômica.
Para acessar dados em documentos incorporados, use a notação de pontos para "alcançar" documentos incorporados. Consulte query de dados em arrays e query data em documentos incorporados para obter mais exemplos sobre como acessar dados em arrays e documentos incorporados.
Modelo de dados incorporados e limite de tamanho do documento
Os documentos no MongoDB devem ser menores que o tamanho máximo do documento BSON.
Para dados binários em massa, considere o GridFS.
Modelo de dados Realm normalizados
Modelo de dados Realm normalizados descrevem relacionamento usando referências entre documento.
Em geral, use Modelo de dados Realm normalizados:
quando a incorporação resultaria em duplicação de dados, mas não forneceria vantagens suficientes de desempenho de leitura para superar as implicações da duplicação.
para representar relacionamentos muitos-para-muitos mais complexos.
para modelar grandes conjuntos de dados hierárquicos.
Para participar de collection, o MongoDB fornece os estágios de agregação:
$lookup
(Disponível a partir do MongoDB 3.2)$graphLookup
(Disponível a partir do MongoDB 3.4)
O MongoDB também fornece referências para unir dados entre collection.
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.
Leitura adicional
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