Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

地理空間インデックス

項目一覧

  • ユースケース
  • はじめる
  • 詳細
  • シャーディングされたコレクション
  • カバード クエリ
  • 球面クエリ
  • 詳細

地理空間インデックスは、 GeoJSONオブジェクトまたはlegacy coordinate pairsとして保存されたデータに対するクエリをサポートします。 地理空間インデックスを使用すると、地理空間データに対するクエリのパフォーマンスを向上させたり、特定の地理空間クエリを実行したりできます。

MongoDB は 2 種類の地理空間インデックスを提供します。

  • 2dsphere インデックスは、球体上のジオメトリを解釈するクエリをサポートします。

  • 2d インデックス。平面上のジオメトリを解釈するクエリをサポートします。

地理空間データとクエリ操作の詳細については、「地理空間クエリ 」を参照してください。

アプリケーションが地理空間データを含むフィールドを頻繁にクエリする場合は、地理空間インデックスを作成してクエリのパフォーマンスを向上させることができます。

特定のクエリ操作には地理空間インデックスが必要です。 $nearまたは$nearSphere演算子、または$geoNear集計ステージを使用してクエリを実行する場合は、地理空間インデックスを作成する必要があります。 詳細については、「地理空間クエリ演算子」と「地理空間集計ステージ 」を参照してください。

たとえば、都市のサブスクライブの座標を指定するlocationフィールドを含むドキュメントを含むsubwayコレクションを考えてみましょう。 特定の地域内のステーションのリストを返すには、よく$geoWithin演算子を使用してクエリを実行します。 このクエリのパフォーマンスを向上させるには、 locationフィールドに地理空間インデックスを作成します。 インデックスを作成したら、 $near演算子を使用してクエリを実行すると、最も近いステーションから最も遠いものの順にソートされて、近くのステーションのリストが返されます。

地理空間インデックスを作成し、地理空間クエリを実行するには、以下を参照してください。

このセクションでは、地理空間インデックスの詳細について説明します。

コレクションをシャーディングする場合、地理空間インデックスをシャードキーとして使用することはできません。 ただし、別のフィールドをシャードキーとして使用して、シャーディングされたコレクションに地理空間インデックスを作成することはできます。

地理空間クエリ演算子集計ステージを使用して、シャーディングされたコレクション上の地理空間データをクエリできます。

地理空間インデックスは、クエリをカバーできません。

球状データのクエリに 2d インデックスを使用すると、誤った結果やエラーが返されることがあります。たとえば、2d インデックスでは、北極と南極が入っている球面クエリはサポートされていません。

ただし、 2dsphereインデックスは球面クエリ2 次元クエリの両方に使用できます。 2 次元クエリの場合、 2dsphereインデックスは legacy coordinate pairs として保存されたデータをGeoJSON ポイント型に変換します。

地理空間クエリ操作の例については、「地理空間クエリの例 」を参照してください。

戻る

制限事項