この記事では、Mongodbでの地理空間インデックスとクエリについて説明しています。 Geojsonとの効率的な位置ベースの検索のために、2DSphereインデックスを使用して詳細に説明します。この記事では、$ near、$ geowithin、およびそのパフォーマンスメリットなどの地理空間演算子をカバーしています
%20<code%20class%20=%20" json alt="ロケーションベースのアプリケーションにMongoDBで地理空間インデックスとクエリを使用するにはどうすればよいですか?" > {&quot;&quot;&quot;&quot; &quot; type; quot;:&quot; quot; point&quot;、&quot; coordinates&quot;:[-73.9728、40.7644] //経度、緯度、緯度}} </p>
<p> class = "javascript"> db.restaurants.createindex({location:&quot; 2dsphere&quot;}) </p>
<p>インデックスを作成した後、地理空間演算子を使用してクエリを実行できます。一般的なオペレーターには、<code> $ near </code>、<code> $ codephere </code>、<code> $ geowithin </code>、および<code> $ geointerects </code></p> <ul> <li> </li>
<li> <code> $ near </code>および<code> $ code> $ code> $ code> <code> $ near </code>は、わずか距離に適した平面ジオメトリを使用しますが、<code> $ codephere </code>は球状のジオメトリを使用します。 Polygon)。 class = "javascript"> db.restaurants.find({location:{$ nearsphere:{$ geometry:{type:&quot; point&quot;、座標:[-73.9728、40.7644]}、$ maxdistance:10000 // meterポリゴン: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> <code class="javascript"> db.restaurants.find({location:{$ geowithin:{$ geometry:{type:&quot; polygon&quot;、座標: ]}}}}インデックスがなければ、MongoDBはコレクションスキャンを実行し、コレクション内のすべてのドキュメントを調べて一致する場所を見つけます。これは非常に非効率的で、特に大規模なデータセットでは <p> 2DSphereインデックスを使用すると、MongoDBはR-Treeなどの空間データ構造を効率的に利用して、検索スペースをすばやく絞り込むことができます。これにより、特に近接検索(<code> $ near </code>、<code> $ nearsphere </code>)を含むクエリの場合、結果をより速く返すことができます。数百万のロケーションポイントを含む大規模なデータセットを扱う場合、パフォーマンスゲインは最も顕著です。クエリの実行時間は大幅に短縮され、アプリケーションの応答性が向上します。違いは、インデックスされていない検索と比較して桁違いに速くなる可能性があります。</p> <h2>ポリゴン内のポイントを見つけるなど、複雑な地理空間クエリを実行できます。前のセクションに示すように、<code> $ geowithin </code>演算子は、<code> polygon </code> geojsonオブジェクトと併せて、特定のポリゴン内にある場所があるドキュメントを効率的に見つけることができます。これは、特定の都市の境界内のすべてのレストランを見つけることや、カスタム定義領域内のポイントを決定するなどのシナリオに役立ちます。また、<code> $ geointerects </code>演算子を使用して、行や他のポリゴンなどのより複雑なジオメトリと交差するドキュメントを見つけることもできます。この柔軟性により、アプリケーションに洗練されたロケーションベースの機能を構築できます。 <h2> Mongodbで地理空間機能を実装する際に避けるべき一般的な落とし穴は何ですか? Geojsonオブジェクト。誤ったデータ型を使用すると、インデックスが正しく動作しなくなります。</h2>
</h2></code>
これらの潜在的な問題に慎重に対処することにより、MongoDBアプリケーションで効率的かつ正確な地理空間機能を確保できます。
以上がロケーションベースのアプリケーションにMongoDBで地理空間インデックスとクエリを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。