Menu Docs
Página inicial do Docs
/ /

Definir faixa de localização para um índice 2d

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 -180

  • menos 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.

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.

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.

Crie um índice 2d no campo address . Especifique os seguintes limites de localização:

  • min limite de -75

  • max limite de 60

db.contacts.createIndex(
{
address: "2d"
},
{
min: -75,
max: 60
}
)

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.

Você pode utilizar o índice 2d para executar cálculos em dados de localização, como query de proximidade.

Voltar

Precisão de localização

Nesta página