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 .