In diesem Artikel wird die Geospatial -Indexierung und Abfrage in MongoDB erläutert. Es wird beschrieben, dass der 2DSphere Index für effiziente standortbasierte Suchanfragen mit Geojson verwendet wird. Der Artikel deckt Geospatial -Operatoren wie $ $ inny, $ Geowithin und ihren Leistungsnutzen
MongoDB bieten eine robuste Unterstützung für Geospatialdaten über seinen 2DSphere-Index. Dieser Index ermöglicht eine effiziente Abfrage von Standortdaten, die als Geojson -Objekte gespeichert sind. Um es zu verwenden, müssen Sie Ihre Daten zuerst korrekt strukturieren. In der Regel werden Standortdaten in einem Dokument als Feld vom Typ Geojson
gespeichert. Geojson unterstützt verschiedene Geometrien wie Punkt
, polygon
, linestring
usw. & quot; type & quot; {Ort: & quot; 2dSphere & quot; Zu den allgemeinen Operatoren gehören $ in der Nähe
, $ näher
, $ geowithin
und $ geointersects
. $ in der Nähe
verwendet die planare Geometrie, geeignet für kleine Entfernungen, während $ näher Phere
kugelförmige Geometrie verwendet, genauer für größere Entfernungen. Polygon).
$ GeoIntersects
: Dieser Bediener findet Dokumente, deren Geometrien mit einer bestimmten Geometrie schneiden. class = "javaScript"> db.restaurants.find ({location: {$ näherSphere: {$ Geometry: {Typ: & quot; point & quot;, Koordinaten: [-73,9728, 40.7644]}, $ maxdistanz: 10000 // Treers}}}}}}})
<code class="javaScript"> db.restaurants.find ({Ort: {$ Geowithin: {$ Geometrie: {Typ: & quot; Polygon & quot; ]]}}}}) </code>
$ in der Nähe
, $ nein, nein, Nahe Phere
). Der Leistungsgewinn ist am spürlichsten, wenn es sich um große Datensätze mit Millionen von Standortpunkten handelt. Die Abfrageausführungszeit verringert sich erheblich und verbessert die Reaktionsfähigkeit Ihrer Anwendung. Der Unterschied kann im Vergleich zu nicht indizierten Suchvorgängen schneller Ordnungen sein. Wie im vorherigen Abschnitt gezeigt, können Sie in Verbindung mit einem Polygon
Geojson -Objekt in Verbindung mit einem polygon
Geojson -Objekt effizient Dokumente finden, deren Ort in das angegebene Polygon fällt. Dies ist nützlich für Szenarien wie das Finden aller Restaurants innerhalb einer bestimmten Stadtgrenze oder die Bestimmung von Punkten in einem maßgeschneiderten Gebiet. Sie können auch den $ geOintersects
-Operator verwenden, um Dokumente zu finden, die sich mit komplexeren Geometrien wie Linien oder anderen Polygonen überschneiden. Diese Flexibilität ermöglicht es Ihnen, ausgefeilte standortbasierte Funktionen in Ihre Anwendungen aufzubauen. Objekte. Die Verwendung falscher Datentypen verhindern, dass der Index korrekt funktioniert. Während der 2DSphere -Index vielseitig ist, sind andere Indizes je nach Ihren spezifischen Anforderungen möglicherweise besser geeignet. Die Verwendung des falschen Index kann zu einer schlechten Abfrageleistung führen. Mischkoordinatensysteme können zu ungenauen Ergebnissen führen. Optimieren Sie Ihre Abfragen, um unnötige Operationen zu minimieren. Die Verwendung falscher Einheiten führt zu ungenauen Ergebnissen. Sharding könnte für außergewöhnlich große Geodatens erforderlich sein.Das obige ist der detaillierte Inhalt vonWie verwende ich Geospatial-Indexierung und Abfragen in MongoDB für standortbasierte Anwendungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!