Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

geoWithin Operador

geoWithin

O operador geoWithin suporta fazer uma query de pontos geográficos dentro de uma determinada geometria. Somente pontos são retornados, mesmo que o valor indexShapes esteja true na definição do índice.

Você pode consultar pontos dentro de um:

  • Círculo

  • Caixa delimitadora

  • Polígono

Ao especificar as coordenadas a serem pesquisadas, a longitude deve ser especificada primeiro e depois a latitude. Os valores de longitude podem estar entre -180 e 180, ambos inclusos. Os valores de latitude podem estar entre -90 e 90, ambos inclusos. Os valores de coordenadas podem ser inteiros ou duplos.

Observação

A Pesquisa do MongoDB não é compatível com o seguinte:

  • Sistema de Referência de Coordenadas Não Padrão (CRS)

  • Sistema de coordenadas Planar XY (bidimensional)

  • Pares de coordenadas Notação de ponto (ou seja, pointFieldName: [12, 34] )

geoWithin tem a seguinte sintaxe:

{
"$search": {
"index": <index name>, // optional, defaults to "default"
"geoWithin": {
"path": "<field-to-search>",
"box | circle | geometry": <object>,
"score": <score-options>
}
}
}

geoWithin usa os seguintes termos para construir uma consulta:

Campo
Tipo
Descrição
necessidade

box

objeto

Objeto que especifica os pontos GeoJSON inferior esquerdo e superior direito de uma caixa para pesquisa. O objeto utiliza os seguintes campos:

Para saber como especificar dados GeoJSON em um objeto GeoJSON, consulte Objetos GeoJSON.

É necessário box , circle ou geometry .

condicional

circle

objeto

Objeto que especifica o ponto central e o raio em metros para o Atlas Search . O objeto contém os seguintes campos GeoJSON :

  • center - Centro do círculo especificado como um ponto GeoJSON.

  • radius - O raio, que é um número, especificado em metros. O valor deve ser maior ou igual a 0.

Para saber como especificar dados GeoJSON em um objeto GeoJSON, consulte Objetos GeoJSON.

É necessário circle , box ou geometry .

condicional

geometry

Objeto GeoJSON

Objeto GeoJSON que especifica o MultiPolígono ou Polígono para o Atlas Search . O polígono deve ser especificado como um loop fechado onde a última posição é igual à primeira posição.

When calculating geospatial results, MongoDB Search geoShape and geoWithin operators and MongoDB $geoIntersects operator use different geometries. This difference can be seen in how MongoDB Search and MongoDB draw polygonal edges.

O MongoDB Search desenha polígonos com base na distância cartesiana, que é a linha mais curta entre dois pontos no sistema de referência de coordenadas.

MongoDB draws polygons using the geodesic mode based on 2dsphere indexes that is built on top of a third-party library for geodesic types, or the flat mode, from 2d indexes. To learn more, see GeoJSON Objects.

A Pesquisa do MongoDB e o MongoDB podem retornar resultados diferentes para queries geoespaciais envolvendo polígonos.

Para saber como especificar dados GeoJSON em um objeto GeoJSON, consulte Objetos GeoJSON.

É necessário geometry , box ou circle .

condicional

path

cadeia de caracteres ou matriz de cadeias de caracteres

Campo ou campos de tipo geo indexado para pesquisa.

sim

score

objeto

Pontuação a ser atribuída aos resultados de pesquisa correspondentes. Por padrão, a pontuação nos resultados é 1. Você pode modificar a pontuação usando as seguintes opções:

  • boost: multiplique a pontuação do resultado pelo número fornecido.

  • constant: substitui a pontuação do resultado pelo número fornecido.

  • function: substitua a pontuação do resultado pela expressão fornecida.

Para obter informações sobre como utilizar o score em sua consulta, consulte Classificar os documentos nos resultados.

no

The following examples use the listingsAndReviews collection in the sample_airbnb database. If you have the sample dataset on your cluster, you can create a custom MongoDB Search index for geo type and run the example queries on your cluster.

Utilize a seguinte definição de índice de amostra para indexar o campo address.location na collection listingsAndReviews :

1{
2 "mappings": {
3 "fields": {
4 "address": {
5 "fields": {
6 "location": {
7 "type": "geo"
8 }
9 },
10 "type": "document"
11 },
12 "property_type": {
13 "type": "token"
14 }
15 }
16 }
17}

A query seguinte utiliza o operador geoWithin com o campo box para search propriedade dentro de uma caixa delimitadora na Austrália.

A consulta inclui um:

  • $limit stage to limit the output to 3 results.

  • $project stage to exclude all fields except name and address.

Observação

Você não precisa especificar índices denominados default em sua query do MongoDB Search. Se o seu índice tiver qualquer outro nome, você deverá especificar o campo index.

A query seguinte utiliza o operador geoWithin com o campo circle para search propriedade dentro de um raio de uma milha de coordenadas especificadas no Canadá.

A consulta inclui um:

  • $limit stage to limit the output to 3 results.

  • $project stage to exclude all fields except name and address, and for Compass examples, the required steps reference.

Observação

Você não precisa especificar índices denominados default em sua query do MongoDB Search. Se o seu índice tiver qualquer outro nome, você deverá especificar o campo index.

Os exemplos a seguir usam o operador geoWithin com o campo geometry para pesquisar propriedades no Havaí. O campo type especifica se a área é um polígono GeoJSON ou MultiPolygon.

Observação

Você não precisa especificar índices denominados default em sua query do MongoDB Search. Se o seu índice tiver qualquer outro nome, você deverá especificar o campo index.