Criar um 2d
Índice
Nesta página
Para construir um índice geoespacial 2d
, utilize o método db.collection.createIndex()
e especifique 2d
. Use a seguinte sintaxe:
db.<collection>.createIndex( { <location field> : "2d" , <additional field> : <value> } , { <index-specification options> } )
O índice 2d
utiliza as seguintes opções opcionais de especificação de índice:
{ min : <lower bound> , max : <upper bound> , bits : <bit precision> }
Definir faixa de localização para um 2d
índice
Por padrão, um índice 2d
pressupõe longitude e latitude e tem limites de -180 inclusivo e 180 não inclusivo. Se os documentos contiverem dados de coordenadas fora do intervalo especificado, o MongoDB retornará um erro.
Importante
Os limites padrão permitem que os aplicativos insiram documentos com latitudes inválidas maiores que 90 ou menores que -90. O comportamento de query geoespaciais com estes ponto inválidos não está definido.
Em índices do 2d
, você pode alterar o intervalo de localização.
Você pode construir um índice geoespacial 2d
com uma faixa de localização diferente do padrão. Utilize as opções min
e max
ao criar o índice. Use a seguinte sintaxe:
db.collection.createIndex( { <location field> : "2d" } , { min : <lower bound> , max : <upper bound> } )
Definir precisão de localização para um 2d
índice
Por padrão, um índice 2d
em legacy coordinate pairs usa 26 bits de precisão, o que é aproximadamente equivalente a 2 p A precisão é medida pelo tamanho em bits dos valores de geohash utilizados para armazenar dados de localização. Você pode configurar índices geoespaciais com até 32 bits de precisão.
A precisão do índice não afeta a precisão da query. As coordenadas de grade reais são sempre usadas no processamento final da query. As vantagens da precisão menor são uma sobrecarga de processamento menor para operações de inserção e o uso de menos espaço. Uma vantagem da maior precisão é que a query examina porções menores do índice para retornar resultados.
To configure a location precision other than the default, use the bits
option when creating the index. Use a seguinte sintaxe:
db.<collection>.createIndex( {<location field> : "<index type>"} , { bits : <bit precision> } )
Para informações sobre os valores internos dos valores de geohash, consulte Cálculo de valores de Geohash para Índices 2d
.