Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

$near (query predicate operador)

$near

Especifica un punto para el cual una consulta geoespacial devuelve los documentos desde el más cercano al más lejano. El $near operador puede especificar un punto GeoJSON o un punto de coordenadas heredado.

$near requiere un índice geoespacial:

  • Índice 2dsphere al especificar un punto GeoJSON.

  • 2d índice si especificas un punto usando coordenadas heredadas.

Para especificar un punto GeoJSON, el operador$near 2requiere un índice dsphere y tiene la siguiente sintaxis:

{
<location field>: {
$near: {
$geometry: {
type: "Point" ,
coordinates: [ <longitude> , <latitude> ]
},
$maxDistance: <distance in meters>,
$minDistance: <distance in meters>
}
}
}

Importante

Si especifica coordenadas de longitud y latitud, enumera primero la longitud y luego la latitud.

  • Los valores de longitud válidos están entre -180 y 180, ambos inclusive.

  • Los valores de latitud válidos están entre -90 y 90, ambos inclusive.

Al especificar un punto GeoJSON, puede usar las especificaciones $minDistance opcionales y para limitar $maxDistance los resultados $near por distancia en metros:

  • $minDistance limita los resultados a aquellos documentos que están al menos a la distancia especificada del punto central.

  • $maxDistance limita los resultados a aquellos documentos que están como máximo a la distancia especificada del punto central.

Para especificar un punto usando coordenadas heredadas, $near requiere un índice 2d y tiene la siguiente sintaxis:

{
$near: [ <x>, <y> ],
$maxDistance: <distance in radians>
}

Al especificar una coordenada heredada, puede usar la especificación opcional para limitar los $maxDistance resultados $near por distancia en radianes. limita los resultados$maxDistance a aquellos documentos que están como máximo a la distancia especificada del punto central.

No se puede combinar el operador,$near que requiere un índice geoespacial especial, con un operador de consulta o comando que requiera otro índice especial. Por ejemplo, no se puede combinar $near con la $text consulta.

El operador ordena los documentos por $near distancia.

  • Si usas el método sort() en tu query, MongoDB realiza una segunda operación de ordenamiento, reorganizando los documentos coincidentes. Al consultar grandes colecciones, esto puede afectar negativamente el rendimiento de la query.

  • Si el orden de los documentos no es importante para ti, considera usar el operador $geoWithin en su lugar, ya que devuelve resultados no ordenados.

  • $near es un operador de ejecución Match y no está permitido en los pipelines de agregación.

A partir de MongoDB,,,8.0 $near$nearSpherey validan que $geoNear el tipo de los puntos GeoJSON especificados Point sea. Cualquier otro tipo de entrada devuelve un error.

Importante

Si especifica coordenadas de longitud y latitud, enumera primero la longitud y luego la latitud.

  • Los valores de longitud válidos están entre -180 y 180, ambos inclusive.

  • Los valores de latitud válidos están entre -90 y 90, ambos inclusive.

Considera una colección places que tenga un índice 2dsphere.

El siguiente ejemplo devuelve documentos que están a al menos 1000 metros y como máximo 5000 metros del punto GeoJSON especificado, ordenados desde el más cercano hasta el más lejano:

db.places.find(
{
location:
{ $near :
{
$geometry: { type: "Point", coordinates: [ -73.9667, 40.78 ] },
$minDistance: 1000,
$maxDistance: 5000
}
}
}
)

Importante

Si especifica coordenadas de longitud y latitud, enumera primero la longitud y luego la latitud.

  • Los valores de longitud válidos están entre -180 y 180, ambos inclusive.

  • Los valores de latitud válidos están entre -90 y 90, ambos inclusive.

Considera una colección legacy2d que tenga un índice 2d.

El siguiente ejemplo devuelve los documentos que están a no más de 0.10 radianes del par de coordenadas heredadas especificado, ordenados de más cercano a más lejano:

db.legacy2d.find(
{ location : { $near : [ -73.9667, 40.78 ], $maxDistance: 0.10 } }
)
Califique esta página