Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Query para ubicaciones cercanas a un punto en una superficie plana

Puedes query datos de ubicación que aparezcan cerca de un punto especificado en una superficie plana.

Para query datos de ubicación cerca de un punto especificado, usa el $near operador:

db.<collection>.find( {
<location field> : {
$near : [ <longitude>, <latitude> ],
$maxDistance : <distance in meters>
}
} )
  • Al especificar pares de coordenadas en el operador $near, 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.

  • Especifique la distancia en el campo $maxDistance en metros.

  1. Crear la colección contacts:

    db.contacts.insertMany( [
    {
    name: "Evander Otylia",
    phone: "202-555-0193",
    address: [ 55.5, 42.3 ]
    },
    {
    name: "Georgine Lestaw",
    phone: "714-555-0107",
    address: [ -74, 44.74 ]
    }
    ] )

    El campo address contiene legacy coordinate pairs.

  2. Para consultar datos de ubicación con el operador $near, debes crear un índice geoespacial en el campo que contiene los datos de ubicación.

    Crear un índice 2D en el campo address:

    db.contacts.createIndex( { address: "2d" } )

Utilizar $near para query la colección. La siguiente $near query devuelve documentos que cuentan con un address campo a menos de 50 metros del par de coordenadas [ -73.92, 40.78 ]:

db.contacts.find( {
address: {
$near: [ -73.92, 40.78 ],
$maxDistance : 50
}
} )

Salida:

[
{
_id: ObjectId("640a3dd9c639b6f094b00e89"),
name: 'Georgine Lestaw',
phone: '714-555-0107',
address: [ -74, 44.74 ]
}
]

Los resultados se ordenan por distancia desde el punto consultado, de más cercano a más lejano.

Volver

Query

En esta página