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

Object that specifies the bottom left and top right GeoJSON points of a box to search within. The object takes the following fields:

  • bottomLeft - Bottom left GeoJSON point.

  • topRight - Top right GeoJSON point.

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 - Center of the circle specified as a GeoJSON point.

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

The following examples use the geoWithin operator with the geometry field to search for properties in Hawaii. The type field specifies whether the area is a GeoJSON Polygon or 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.