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