Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Usar o padrão de aproximação

Nesta página

  • Sobre esta tarefa
  • Passos
  • Inserir dados de amostra
  • Implemente o padrão de aproximação
  • Resultados
  • Saiba mais

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 .

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.

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.

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

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.

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.

  • Armazenar dados computados

  • Consistência de dados

  • Dados do grupo

Voltar

Dados computados