Docs Menu
Docs Home
/ /

Aplica patrones de diseño

Los patrones de diseño de esquemas son formas de optimizar su modelo de datos para los patrones de acceso de su aplicación. Mejoran el rendimiento de las aplicaciones y reducen la complejidad del esquema. Los patrones de diseño de esquemas afectan cómo se almacenan sus datos y qué datos se devuelven a su aplicación.

Para obtener una lista de patrones de diseño de esquemas y ejemplos, consulte Serie de blogs sobre MongoDB:Construcción con patrones.

Antes de implementar patrones de diseño de esquemas, considera el problema que estás tratando de resolver. Cada patrón de diseño de esquemas tiene diferentes casos de uso y compromisos en cuanto a la coherencia de los datos, el rendimiento y la complejidad.

Implementar un patrón sin comprender la aplicación y los datos que necesita puede degradar el rendimiento de la aplicación y causar complicaciones innecesarias.

Considere los siguientes patrones de ejemplo utilizados por una franquicia de cines:

  • El esquema contiene un movie colección y una colección theater. El esquema utiliza el Patrón de subconjunto para duplicar un subconjunto de información de la movie colección en la theater colección. Este patrón reduce el tamaño de los documentos devueltos a la aplicación y mejora el rendimiento de lectura.

  • La colección movie contiene un campo total_views, que utiliza el patrón calculado para calcular un total acumulado de la cantidad de veces que los clientes ven una película en todos los cines donde se proyecta la película.

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
}
]
}
]
)

Volver

Asignar relaciones

En esta página