Docs Menu
Docs Home
/ /
/ / /

Utilice el patrón de aproximación

Utilice el patrón de aproximación cuando tenga valores que cambien con frecuencia, pero los usuarios no necesiten conocerlos con precisión. En lugar de actualizar los valores cada vez que cambian los datos, el patrón de aproximación actualiza los datos con mayor granularidad, lo que resulta en menos actualizaciones y una menor carga de trabajo de la aplicación.

El patrón de aproximación es útil cuando no es necesario informar los valores con exactitud. Por ejemplo:

  • Población de la ciudad

  • Visitas al sitio web

  • Viajeros de aerolíneas

Las mediciones anteriores suelen ser útiles cuando se aproximan. La aplicación puede ahorrar tiempo y recursos actualizando los valores almacenados por cientos o miles, según la escala de los datos.

En este ejemplo, una aplicación muestra datos de población de una ciudad de aproximadamente 40,000 habitantes. Los usuarios de la aplicación buscan principalmente tendencias generales y no necesitan conocer la población exacta de la ciudad.

1
db.population.insertOne( {
city: "New Perth",
population: 40000,
date: ISODate("2022-09-15")
} )
2

El valor real de la población cambia varias veces en un solo día. En lugar de actualizarlo con cada cambio, utilice la lógica de la aplicación para insertar un nuevo documento cada vez que la población cambie en 100.

Por ejemplo, la lógica de su aplicación podría parecerse a la siguiente:

let population = 40000
function updateStoredPopulation(curr_population, new_population) {
let population_change = Math.abs(curr_population - new_population)
if (population_change >= 100) {
db.population.insertOne(
{
city: "New Perth",
population: new_population,
date: Date()
}
)
population = new_population
}
}

Nota

El ejemplo anterior es solo ilustrativo y no utiliza una sintaxis precisa. Para conocer la sintaxis correcta para su aplicación, consulte su correspondiente documentación del controlador.

La lógica de aplicación anterior podría dar como resultado estos documentos:

db.population.insertMany( [
{
city: "New Perth",
population: 40100,
date: ISODate("2024-09-20")
},
{
city: "New Perth",
population: 40200,
date: ISODate("2024-10-01")
},
{
city: "New Perth",
population: 40300,
date: ISODate("2024-10-09")
},
] )

Nota

La forma de recopilar los valores actualizados depende del escenario. En este ejemplo, los valores de población actualizados pueden obtenerse de los informes del censo.

Al actualizar la población con una granularidad de 100, el patrón de aproximación reduce la cantidad de actualizaciones al 1% de las actualizaciones que serían necesarias para rastrear los cambios individuales de la población.

Los usuarios pueden ver cómo la población aumenta con el tiempo, lo que satisface sus necesidades de ver tendencias de alto nivel.

  • Almacenar datos calculados

  • Coherencia de datos

  • Datos de grupo

Volver

Datos calculados

En esta página