Em um índice 2d, a precisão da localização é definida pelo tamanho em bits dos valores de geohash utilizados para armazenar os dados indexados. Por padrão, os índices 2d usam 26 bits de precisão, o que equivale a aproximadamente 60 segundos.
A precisão da localização afeta o desempenho das operações de inserção e leitura.
Para alterar a precisão padrão, especifique um valor bits ao criar o índice 2d. Você pode especificar um valor bits entre 1 e 32, inclusive.
db.<collection>.createIndex( { <location field>: "2d" }, { bits: <bit precision> } )
Sobre esta tarefa
A precisão da localização afeta o desempenho da query:
A menor precisão melhora o desempenho das operações de inserção e atualização e usa menos armazenamento.
A maior precisão melhora o desempenho das operações de leitura, pois a query examina porções menores do índice para retornar resultados.
A precisão da localização não afeta a precisão da query. As coordenadas de grade são sempre usadas no processamento final da query.
Antes de começar
Crie a coleção contacts:
db.contacts.insertMany( [ { name: "Evander Otylia", phone: "202-555-0193", address: [ 55.5, 42.3 ] }, { name: "Georgine Lestaw", phone: "714-555-0107", address: [ -74, 44.74 ] } ] )
O campo address contém pares de coordenadas legados.
Procedimento
Crie um índice 2d no campo address . Especifique uma precisão de localização de 32 bits:
db.contacts.createIndex( { address: "2d" }, { bits: 32 } )
Próximos passos
Você pode utilizar o índice 2d para executar cálculos em dados de localização, como query de proximidade.