geoHaystack
Indexes
Importante
Removido no MongoDB 5.0
O MongoDB 5.0 remove o índice geoHaystack obsoleto e o comando geoSearch
. Em vez disso, use um 2d index com $geoNear
ou um dos geospatial query operators compatíveis.
Atualizar sua instância MongoDB para 5.0 e configurar featureCompatibilityVersion para 5.0
excluirá quaisquer índices geoHaystack preexistentes.
Um índice geoHaystack
é um índice especial otimizado para retornar resultados em áreas pequenas. Índices geoHaystack
melhoram o desempenho em query que usam geometria plana.
Para query que usam geometria esférica, um índice 2dsphere é uma opção melhor do que um índice haystack. índices 2dsphere permitem reordenação de campos; geoHaystack
índices exigem que o primeiro campo seja o campo de localização. Além disso, os índices geoHaystack
só podem ser utilizados por meio de comandos e, portanto, sempre retornam todos os resultados de uma só vez.
Comportamento
geoHaystack
Os índices criam "buckets" de documento da mesma área geográfica para melhorar o desempenho de query limitadas a essa área. Cada bucket em um índice geoHaystack
contém todos os documentos dentro de uma proximidade especificada de uma determinada longitude e latitude.
sparse
Propriedade
geoHaystack
os índices são escassos por padrão e ignoram a opção esparso: verdadeiro . Se um documento não tiver um campo de índice geoHaystack
(ou o campo for null
ou uma array vazia), o MongoDB não adicionará uma entrada para o documento ao índice geoHaystack
. Para inserções, o MongoDB insere o documento, mas não adiciona ao índice geoHaystack
.
geoHaystack
os índices incluem uma chave de índice geoHaystack
e uma chave de índice não geoespacial; no entanto, somente o campo de índice geoHaystack
determina se o índice faz referência a um documento.
Opção de agrupamento
geoHaystack
os índices suportam apenas a comparação binária simples e não suportam o agrupamento.
Para criar um índice geoHaystack
em uma collection que tem um agrupamento não simples, você deve especificar explicitamente {collation: {locale: "simple"}
}
ao criar o índice.
Criar geoHaystack
índice
Para criar um índice geoHaystack
, consulte Criar um índice haystack. Para obter informações e exemplos sobre como consultar um índice do milhagem, consulte Fazer query de um índice do milhagem.