Você pode definir o intervalo de coordenadas incluídas em um2 d . Por padrão, os índices 2d têm limites de longitude e latitude de:
Maior ou igual a
-180menos de
180
Para alterar o intervalo de localização de um índice 2d, especifique as opções min e max ao criar o índice:
db.<collection>.createIndex( { <location field>: "2d" }, { min: <lower bound>, max: <upper bound> } )
Os limites min e max são inclusivos e se aplicam tanto à longitude quanto à latitude.
Sobre esta tarefa
Importante
Os limites de localização padrão para índices 2d permitem latitudes inferiores a -90 e superiores a 90, que são valores inválidos. O comportamento das query geoespaciais com estes ponto inválidos não está definido.
Definir um intervalo de localização menor para um índice 2d reduz a quantidade de dados armazenados no índice e pode melhorar o desempenho da query.
Você não pode criar um índice 2d se sua collection contiver dados de coordenadas fora do intervalo de localização do índice.
Após criar um índice 2d, você não pode inserir um documento que contenha dados de coordenadas fora do intervalo de localização do índice.
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 os seguintes limites de localização:
minlimite de-75maxlimite de60
db.contacts.createIndex( { address: "2d" }, { min: -75, max: 60 } )
Resultados
O índice cobre um intervalo de localização menor e melhorou o desempenho do que um índice 2d padrão.
Após criar o índice, você não pode inserir um documento que contenha dados de coordenadas fora do intervalo de localização do índice. Por exemplo, você não pode inserir o seguinte documento:
db.contacts.insertOne( { name: "Paige Polson", phone: "402-555-0190", address: [ 70, 42.3 ] } )
O campo address tem um valor de longitude de 70, que é maior que o limite max de 60.
Próximos passos
Você pode utilizar o índice 2d para executar cálculos em dados de localização, como query de proximidade.