Orte innerhalb eines Radius abfragen

9

Wenn ich ein Dokument in der Form von:

habe %Vor%

in den Sammlungsbenutzern (bitte tu so, als wären sie echt lat / lon :-))

Was ist der richtige Weg, um alle Werte innerhalb eines bestimmten Radius von etwa 50 Meilen zu erhalten?

    
Paul 08.09.2014, 22:33
quelle

1 Antwort

42

Es ist ein 3-stufiger Prozess.

  • Schritt 1) ​​Betten Sie einen GeoJSON-Punkt in Ihre Dokumente ein.
  • Schritt 2) Indexieren Sie den Pfad zu den Punkten mit 2dsphere .
  • Schritt 3) Abfrage der Punkte in den Dokumenten mit $geoWithin und $centerSphere .

Um georäumliche Abfragen durchzuführen, müssen Sie die Dokumentstruktur so ändern, dass sie mit GeoJSON übereinstimmt Punkt. Das sieht so aus.

%Vor%

Beispielcode zum Übersetzen Ihrer Sammlung in das Point-Format.

%Vor%

Anschließend können Sie die Operatoren $geoWithin und $near in Ihren Abfragen verwenden, wie im folgenden Beispiel.

Beispiel

Einrichtung

%Vor%

Abfrage: Finde Landmarken innerhalb von 5 Meilen.

%Vor%

Ausgabe

%Vor%

Weitere Informationen:

Larry Battle 09.09.2014, 04:37
quelle

Tags und Links