MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como executar o runCommand com o Mongoose?


Em primeiro lugar, ainda não existe um wrapper de conveniência para usar o geoNear com o Mongoose diretamente (dado que você deseja ler a distância calculada).

Mas como as coleções do Mongoose proxies todos os métodos de coleta do driver nativo do MongoDB nativo você pode simplesmente usar o método geoNear , embora você tenha que desistir de um pouco da conveniência que você pode esperar do Mongoose e, nas minhas descobertas, o tratamento de erros foi um pouco diferente.

De qualquer forma, é assim que você pode usar a referida 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 os documentos para o tratamento correto de erros e como calcular as distâncias .