sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur kör man runCommand med Mongoose?

Först och främst finns det ännu inte ett bekvämlighetsomslag för att använda geoNear med Mongoose direkt (med tanke på att du vill läsa det beräknade avståndet).

Men eftersom Mongoose collections fullmakter alla insamlingsmetoder från den inbyggda MongoDB-drivrutinen du kan bara använda deras geoNear-metod , även om du måste ge upp lite bekvämlighet som du kan förvänta dig av Mongoose och i mina upptäckter var felhanteringen lite annorlunda.

Hur som helst, så här kan du använda nämnda 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;
  }
});

Se dokumenten för korrekt felhantering och hur man beräknar avstånden .



  1. MongoDB diakritisk känslig sökning visar inte alla rader med accent (ord med diakritiskt tecken) som förväntat och vice versa

  2. Mongoose - 2dsphere index - howto

  3. Välj baserat på tidsstämpel och uppdatera tidsstämpel med noll

  4. Hur konverterar man en sträng till ObjectId i nodejs mongodb inbyggd drivrutin?