sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo ejecutar runCommand con Mongoose?

En primer lugar, todavía no existe un contenedor conveniente para usar geoNear con Mongoose directamente (dado que desea leer la distancia calculada).

Pero dado que las colecciones de Mongoose representa todos los métodos de recolección del nativo controlador nativo de MongoDB simplemente puede usar su método geoNear , aunque debe renunciar a un poco de comodidad que podría esperar de Mongoose y, según mis hallazgos, el manejo de errores fue un poco diferente.

De todos modos, así es como podrías usar dicha API:

YourModel.collection.geoNear(lon, lat, {spherical: true, maxDistance: d}, function(err, docs) {
  if (docs.results.length == 1) {
    var distance = docs.results[0].dis;
    var match = docs.results[0].obj;
  }
});

Consulte los documentos para el manejo correcto de errores y cómo calcular las distancias .