Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Aplicar padrões de design

Nesta página

  • Sobre esta tarefa
  • Exemplo
  • collection de filmes
  • teatro collection
  • Saiba mais

Os padrões de design de esquemas são maneiras de otimizar seu Modelo de dados Realm para os padrões de acesso da aplicação. Eles melhoram o desempenho do aplicativo e reduzem a complexidade do esquema. Os padrões de design do esquema afetam como seus dados são armazenados e quais dados são retornados ao seu aplicativo.

Para obter uma lista de exemplos e padrões de design de esquema, consulte a série de blogs Construindo com padrões do MongoDB Blog .

Antes de implementar padrões de design de esquema, considere o problema que você está tentando resolver. Cada padrão de design de esquema tem diferentes casos de uso e compensações para consistência de dados, desempenho e complexidade. Por exemplo, alguns padrões de design de esquema melhoram o desempenho de gravação, enquanto outros melhoram o desempenho de leitura.

Implementar um padrão sem entender seu aplicativo e os dados que ele precisa pode degradar o desempenho do aplicativo e causar problemas desnecessários para o design do esquema.

Considere os seguintes padrões de exemplo usados por uma franquia de cinema:

  • O esquema contém uma coleção movie e uma coleção theater . O esquema usa o padrão de subconjunto para duplicar um subconjunto de informações da coleção movie na coleção theater . O padrão de subconjunto reduz o tamanho dos documentos retornados ao aplicativo e melhora o desempenho de leitura.

  • A coleção movie contém um campo total_views, que usa o padrão computado para calcular um total em execução do número de vezes que os clientes assistem a um filme em todos os cinemas onde o filme é exibido.

db.movie.insertOne(
{
_id: 1,
title: "Titanic",
year: 1997,
director: "James Cameron",
runtime: 194,
distributor: "Paramount Pictures",
languages: [ "English" ],
total_views: 3500
}
)
db.theater.insertMany(
[
{
name: "Downtown Cinemas",
address: {
street: "2212 Taylor Street",
state: "NY"
},
movies: [
{
movie_id: 1,
title: "Titanic",
runtime: 194,
views: 1500
}
]
},
{
name: "Midtown Theater",
address: {
street: "1232 5th Street",
state: "NY"
},
movies: [
{
movie_id: 1,
title: "Titanic",
runtime: 194,
views: 2000
}
]
}
]
)
  • Contextos de aplicação específicos do modelo

  • Manipular dados duplicados

  • Consistência de dados

← Mapeamento de relacionamentos de esquema