Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
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 tu aplicación puede 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 aprender la sintaxis correcta de 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 el número de actualizaciones al 1% de las actualizaciones que serían requeridas para rastrear los cambios individuales en 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