Es sieht so aus, als ob mongodb zwei ähnliche Funktionen für georäumliche Abfragen anbietet - $near
und $geoNear
. Laut den Mongo Docs
Der Befehl geoNear bietet eine Alternative zum Operator $ nea. Im Zusätzlich zu der Funktionalität von $ near, gibt geoNear zusätzliche Informationen zurück Diagnoseinformationen.
Es sieht so aus, als ob geoNear
eine Obermenge der near
-Funktionalität bereitstellt. Zum Beispiel scheint near
nur die nächsten 100 Dokumente zurückzugeben, während geoNear
ein Maximum angeben kann. Gibt es einen Grund, near
anstelle von geoNear
zu verwenden? Ist einer effizienter als der andere?
Die Effizienz sollte für beide identisch sein.
Die Haupteinschränkung von geoNear
besteht darin, dass als Befehl ein Ergebnis zurückgegeben werden kann, das auf die maximale Dokumentgröße eingestellt ist, da alle übereinstimmenden Dokumente in einem einzigen Ergebnisdokument zurückgegeben werden. Es erfordert auch, dass jedem Ergebnisdokument ein Entfernungsfeld hinzugefügt wird, das abhängig von Ihrer Verwendung ein Problem darstellt oder nicht.
$near
ist ein Abfrageoperator, daher können die Ergebnisse größer sein als ein einzelnes Dokument (sie werden immer noch in einer einzigen Antwort, aber nicht in einem einzelnen Dokument zurückgegeben). Sie können auch die maximale Anzahl von Dokumenten über das Limit der Abfrage () festlegen.
Ich empfehle Benutzern, bei $near
zu bleiben, es sei denn, sie benötigen die diagnostics
(z. B. Abstand oder Position, die gefunden wurde) aus dem Befehl geonear
.
Dies sind wesentliche Unterschiede: -
$ geoNear gibt Ihnen auch die Entfernung vom Punkt, aber $ near Befehl nicht.
$ geoNear erfordert, dass die Auflistung höchstens einen 2d-Index und / oder nur einen 2dsphere-Index aufweist, während Geospatial-Abfrageoperatoren wie $ near und $ geoWithin zulassen, dass Sammlungen mehrere geospatiale Indizes aufweisen. Dies liegt daran, dass im Befehl $ geoNear keine Option zum Angeben des Felds vorhanden ist, in dem Sie suchen möchten, wobei Sie wie im Befehl $ near den Feldnamen angeben können.
Tags und Links geospatial mongodb