MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come eseguire runCommand con Mongoose?

Innanzitutto non esiste ancora un comodo wrapper per utilizzare direttamente geoNear con Mongoose (dato che si vuole leggere la distanza calcolata).

Ma poiché le raccolte Mongoose proxy tutti i metodi di raccolta dal driver nativo MongoDB puoi semplicemente usare il loro metodo geoNear , anche se devi rinunciare a un po' di comodità che potresti aspettarti da Mongoose e, secondo quanto ho scoperto, la gestione degli errori era leggermente diversa.

Ad ogni modo, ecco come potresti usare detta 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;
  }
});

Fare riferimento ai documenti per la corretta gestione degli errori e come calcolare le distanze .