Estoy tratando de calcular la distancia usando geoNear según el valor de la canalización de búsqueda.
Para esto probé como:
db.bookDetail.aggregate([ { $geoNear:{ near: { type:'Point', coordinates[70.12,20.12] }, distanceField: 'distance', key: 'bookcenter.address', spherical: true } }, { $lookup:{ from: 'books', localField:'book.id', foreignField: '_id', as: 'bookcenter' } } ])Da el error de valor incorrecto: MongoError: error al procesar la consulta
Y geoNear no se puede usar después de la búsqueda, ya que necesito el valor de la búsqueda para pasar a la clave de geoNear.
Por favor, hágamelo saber cómo puedo calcular la distancia.
Si alguien necesita más información, por favor hágamelo saber.
Nota: tengo latitud y longitud y quiero calcular la distancia desde la dirección presente en la colección de libros que se obtiene mediante la búsqueda
El campo $geoNear fue diseñado para ubicar puntos de manera eficiente utilizando un índice geoespacial. Usarlo solo para calcular la distancia es una gran cantidad de gastos generales innecesarios.
Si no está filtrando por distancia, será más eficiente calcular la distancia en el tamaño del cliente con una biblioteca como https://www.npmjs.com/package/geographiclib