Usar o padrão de aproximação
Nesta página
Use o padrão de aproximação quando você tiver valores que mudam com frequência, mas os usuários não precisam saber valores precisos. Em vez de atualizar os valores toda vez que os dados são alterados, o padrão de aproximação atualiza os dados com base em uma granularidade maior, o que resulta em menos atualizações e um menor volume de trabalho do aplicação .
Sobre esta tarefa
O padrão de aproximação é útil quando os valores não precisam ser relatados exatamente. Por exemplo:
População da cidade
Visite o website
Passageiroas de companhias aéreas
As medições anteriores são normalmente úteis quando aproximadas. O aplicação pode economizar tempo e recursos atualizando os valores armazenados em centenas ou milhares, dependendo da escala dos dados.
Passos
Neste exemplo, um aplicação exibe dados populacionais para uma cidade de aproximadamente 40,000 pessoas. Os usuários de aplicativos procuram principalmente tendências gerais e não precisam saber a população exata da cidade.
Implemente o padrão de aproximação
O valor real da população muda várias vezes em um único dia. Em vez de atualizar o valor da população a cada alteração, use a lógica do aplicação para inserir um novo documento toda vez que a população for alterada em 100.
Por exemplo, a lógica do seu aplicação pode ser semelhante à seguinte:
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 } }
Observação
O exemplo anterior é apenas ilustrativo e não utiliza sintaxe precisa. Para saber a sintaxe correta para seu aplicação, consulte adocumentação do driver correspondente.
Resultados
A lógica do aplicação anterior pode resultar nestes 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") }, ] )
Observação
Como os valores atualizados são obtidos depende do seu cenário. Neste exemplo, valores populacionais atualizados podem ser obtidos a partir de relatórios de compartilhamento.
Ao atualizar a população com uma granularidade de 100, o padrão de aproximação reduz o número de atualizações para 1% das atualizações que seriam necessárias para rastrear alterações individuais da população.
Os usuários podem ver a população aumentando ao longo do tempo, o que atende às suas necessidades de ver tendências de alto nível.