Docs Menu
Docs Home
/
MongoDB Atlas
/ / / /

GeoJSON オブジェクトのインデックス作成方法

項目一覧

  • geoタイプのインデックスを定義する
  • geoフィールド プロパティを構成する
  • geo 型の例を試す

Atlas Search geoタイプを使用して、地理的ポイントをインデックスし、座標を形成できます。 このタイプの場合、インデックス フィールドは GeoJSONオブジェクトである必要があります。 geoShape演算子とgeoWithin演算子を使用して、 geoタイプのインデックス付きフィールドをクエリできます。

Atlas Search は、 geoタイプのフィールドを動的にインデックスしません。 フィールドのインデックスを作成するには、 静的マッピング を使用する 必要 があります。geoAtlas UI のビジュアル エディターまたはJSON エディターを使用して、 geo型のフィールドをインデックスできます。

geoタイプのインデックスを定義するには、Atlas UI で希望する構成方法を選択し、データベースとコレクションを選択します。

  1. [ Refine Your Indexをクリックしてインデックスを構成します。

  2. Field Mappingsセクションで、 Add Field MappingをクリックしてAdd Field Mappingウィンドウを開きます。

  3. [Customized Configuration] をクリックします。

  4. Field Nameドロップダウンからインデックスするフィールドを選択します。

    注意

    フィールド名の先頭にドル記号($)が含まれるフィールドにはインデックスを付けられません。

  5. Data Typeドロップダウンをクリックし、Geo を選択します。

  6. geo型のフィールド プロパティを構成します。 詳しくは、「フィールド プロパティ」を参照してください。

  7. [Add] をクリックします。

以下は、 geo型の JSON構文です。 デフォルトのインデックス定義を以下のように置き換えます。 フィールドの詳細については、「フィールド プロパティ」を参照してください。

{
"mappings": {
"dynamic": false,
"fields": {
"<field-name>": {
"indexShapes": true|false,
"type": "geo"
}
}
}
}

Atlas Search geo型は次のパラメータを取ります。

オプション
タイプ
必要性
説明
default

type

string

必須

このフィールド型を識別する、人間が判読できるラベル。 UI 値はGeoで、 JSON値はgeoである必要があります。

indexShapes

ブール値

任意

シェイプのインデックスを作成するかどうかを示すフラグ。 デフォルトでは、Atlas Search は次のようになります。

  • ネストされている場合でも、ポイントのインデックスを作成します。

  • 線や多角形などの形状ジオメトリのインデックスは作成されません。

値は次のとおりです。

  • true : 形状と点のインデックス作成

  • false : ポイントのみをインデックス化する

false

次のインデックス定義の例では、 sample_ Airbnb.listingAnd Reviewsを使用しています コレクションのマルチキー インデックスの図。 サンプル データがすでにクラスターにロードされている場合は、Atlas UI のビジュアル エディターまたはJSONエディターを使用してインデックスを構成できます。 ご希望の構成方法を選択したら、データベースとコレクションを選択し、インデックスを微調整してフィールド マッピングを追加します。

次のインデックス定義では、Atlas Search geoShapeおよびgeoWithin演算子を使用して、そのフィールドに対するクエリをサポートするために、 address.locationフィールドをgeoタイプとしてインデックス化します。

  1. Add Field Mappingウィンドウで、 Field Nameドロップダウンからaddress.locationを選択します。

  2. Data Typeドロップダウンをクリックし、Geo を選択します。

  3. Geo Propertiesを変更して、 Index Shapesの値をtrueに設定します。

  4. [Add] をクリックします。

デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。

1{
2 "mappings": {
3 "fields": {
4 "address": {
5 "type": "document",
6 "fields": {
7 "location": {
8 "indexShapes": true,
9 "type": "geo"
10 }
11 }
12 }
13 }
14 }
15}

Tip

その他のインデックス定義例も参照してください

戻る

embeddedDocuments