MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment exécuter runCommand avec Mongoose ?

Tout d'abord, il n'y a pas encore de wrapper pratique pour utiliser directement geoNear avec Mongoose (étant donné que vous voulez lire la distance calculée).

Mais depuis les collections Mongoose proxy toutes les méthodes de collecte depuis le pilote natif MongoDB vous pouvez simplement utiliser leur méthode geoNear , bien que vous deviez renoncer à un peu de commodité que vous pourriez attendre de Mongoose et d'après mes conclusions, la gestion des erreurs était un peu différente.

Quoi qu'il en soit, voici comment vous pourriez utiliser ladite 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;
  }
});

Veuillez vous référer à la documentation pour une gestion correcte des erreurs et comment calculer les distances .