geoHaystack
Indexes
Importante
Removido no MongoDB 5.0
O MongoDB 5.0 remove o índice geoHaystack obsoleto e o comando geoSearch
. Utilize um índice 2d com $geoNear
ou um dos operadores de query geoespacial suportados.
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
Índices geoHaystack
criam "buckets" de documentos da mesma área geográfica para melhorar o desempenho de queries limitadas a essa área. Cada bloco em um índice geoHaystack
contém todos os documentos dentro de uma proximidade especificada de uma determinada longitude e latitude.
sparse
Propriedade
Os índices geoHaystack
são esparsos por padrão e ignoram a opção esparsa: true . Se um documento não tiver um campo de índice geoHaystack
(ou se 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
.
Os índices geoHaystack
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
Índices geoHaystack
suportam somente comparação binária simples e não suportam 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 índice geoHaystack
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.