Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Utilice el patrón de aproximación

Utiliza el patrón de aproximación cuando tienes valores que cambian con frecuencia, pero los usuarios no necesitan conocer valores precisos. En lugar de actualizar valores cada vez que los datos cambian, el patrón de aproximación actualiza datos según una granularidad mayor, lo que resulta en menos actualizaciones y una menor carga de trabajo en 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 en avión

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

En este ejemplo, una aplicación muestra el dato 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 muchas veces en un solo día. En lugar de actualizar el valor de la población 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 driver.

La lógica de la aplicación anterior puede resultar en 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 en que se recopilan los valores actualizados depende de tu escenario. En este ejemplo, los valores de población actualizados se pueden obtener 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 aumenta la población con el tiempo, lo que satisface su necesidad de ver tendencias generales.

  • Almacenar datos calculados

  • Coherencia de datos

  • Datos de grupo

Volver

Datos calculados

En esta página