地理空間インデックス
Overview
MongoDB は、 2 dsphere インデックスを使用した地理空間座標データのクエリをサポートしています。 2dsphere
インデックスを使用すると、包含、交差、近接性について地理空間データを照会できます。 地理空間データのクエリの詳細については、 地理空間クエリを参照してください。
2dsphere
インデックスを作成するには、 GeoJSON オブジェクトのみを含むフィールドを指定する必要があります。 これについて詳しくは、 マニュアルの「GeoJSON オブジェクト ガイドMongoDB Server 」を参照してください。
サンプル データ
このガイドの例では、 Atlas サンプル データセットのsample_mflix.theaters
コレクションを使用します。 無料の MongoDB Atlas クラスターを作成し、サンプル データセットをロードする方法については、 PyMongo を使い始める を参照してください。
sample_mflix
データベース内のtheaters
コレクションの次のサンプル ドキュメントのlocation.geo
フィールドは、劇場の座標を記述する GeoJSON ポイント オブジェクトです。
{ "_id" : ObjectId("59a47286cfa9a3a73e51e75c"), "theaterId" : 104, "location" : { "address" : { "street1" : "5000 W 147th St", "city" : "Hawthorne", "state" : "CA", "zipcode" : "90250" }, "geo" : { "type" : "Point", "coordinates" : [ -118.36559, 33.897167 ] } } }
地理空間インデックスの作成
次の例では、 location.geo
フィールドに2dsphere
インデックスを作成します。
theaters.create_index( [( "location.geo", "2dsphere" )] )
MongoDB は、ユークリッド平面上の距離を計算し、MongoDB 2.2以前で使用される「legacy coordinate pairs」構文を操作するための2d
インデックスもサポートしています。 詳細については、 マニュアルの「 地理空間クエリ 」ガイド MongoDB Serverを参照してください。