query near indexstats index example mongodb geospatial

near - ¿Unidades a usar para maxdistance y MongoDB?



mongoose $near (2)

Estoy tratando de entender mejor las búsquedas geoespaciales y de MongoDB. Básicamente, lo que quiero es que los usuarios puedan consultar documentos (imágenes) que se tomaron a una distancia determinada de la ubicación actual de los usuarios. Por lo tanto, el usuario está buscando todas las imágenes tomadas a 1 km de donde se encuentra. Intento usar el siguiente ejemplo, pero no tengo idea de qué establecer como valor de distancia máxima.

db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 }})

Entonces, mi pregunta es ¿qué establezco como distancia máxima si estoy buscando documentos dentro de un radio de 1 km?

Estoy totalmente atascado aquí.


Desde la versión 2.4 de MongoDB, puede especificar el radio directamente en metros como un valor de $ maxDistance , así:

db.<collection>.find({loc: {$near : {$geometry : { type: ''Point'', coordinates: [<longitude> , <latitude>] } }, $maxDistance: 10*100 } });


Para utilizar mongodb $near consultas con límites de km, debe convertir el valor del radio a km. Por defecto, mongodb $ near acepta $maxDistance como radius .

Convierta la distancia en 111.12 (un grado es aproximadamente 111.12 kilómetros) al usar km, o deje la distancia a medida que avanza usando el grado

a tu pregunta

¿qué establezco como distancia máxima si estoy buscando documentos dentro de un radio de 1 km?

puedes usar esto

db.places.find( { loc : { $near : [50,50] , $maxDistance : 1/111.12 } } )

He respondido cómo usar las características geoespaciales de Mongo aquí en detalle . Puedes echar un vistazo