Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

ファセット検索の日付フィールドのインデックス作成方法

MongoDB Search dateFacet タイプを使用して、ファセットの日付値をインデックス化できます。

MongoDB Search は、dateFacet 型としてインデックス付けされたフィールドに対するファセット演算子クエリのみをサポートします。同じフィールドで通常の検索も実行するには、フィールドをdate 型としてインデックス必要があります。

埋め込まれたドキュメント内の文字列フィールドをファセットには、親フィールドをドキュメント型としてインデックス必要があります。埋め込まれたドキュメント内の stringフィールドをファセットと、 MongoDB Search は一致する親ドキュメントの数のみのファセット数を返します。

MongoDB Search は、ファセットの日付値を動的にインデックスしません。ファセットの日付値をインデックスには、静的マッピングを使用する必要があります。Atlas UIのビジュアル エディターまたはJSONエディターを使用して、日付フィールドを number 型としてインデックスできます。

次の制限が適用されます。

  • 配列内、または配列内のドキュメント内にある場合は、ファセット用に日付フィールドをインデックスできません。

  • MongoDB Search では、 embeddedDocumentsフィールドの一部としてインデックス付けされたフィールドを対象とする日付のファセットはサポートされていません。

    注意

    この機能をリクエストてフィードバックを提供するには、MongoDBフィードバック を使用します。

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

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

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

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

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

    注意

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

  5. [ DateFacet Data Typeドロップダウンをクリックし、[] を選択します。 このタイプの詳細については、「フィールド プロパティ」を参照してください。

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

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

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

MongoDB Search dateFacet タイプは次のパラメーターを取ります。

UI フィールド名
JSON Option
タイプ
必要性
説明

Data Type

type

string

必須

このフィールド型を識別する、人間が判読できるラベル。値はdateFacetでなければなりません。

The following index definition example uses the sample_mflix.movies collection. If you have the sample data already loaded on your cluster, you can use the Visual Editor or JSON Editor in the Atlas UI to configure the index. After you select your preferred configuration method, select the database and collection, and refine your index to add field mappings.

次のインデックス定義の例では、released フィールドをMongoDB SearchdateFacet タイプとしてインデックス化し、 MongoDB Searchfacet (MongoDB Search 演算子)を使用してそのフィールドに対するクエリをサポートします。

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

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

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

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

{
"mappings": {
"dynamic": false,
"fields": {
"released": {
"type": "dateFacet"
}
}
}
}

次のインデックス定義の例では、released フィールドをdateFacet タイプとdate タイプとしてインデックス化し、クエリの結果の次のタイプを返します。

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

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

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

  4. ステップ1を繰り返し、 Data Typeドロップダウンから [ Date ] を選択します。

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

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

{
"mappings": {
"dynamic": false,
"fields": {
"released": [
{
"type": "dateFacet"
},
{
"type": "date"
}
]
}
}
}

facet コレクターの詳細とクエリの例については、「」を参照してください。

ファセット定義を使用してインデックスを作成し、facet コレクターを使用してそのインデックスをクエリする方法については、「 MongoDB Search でファセットの使用方法 」チュートリアルをご覧ください。

戻る

date

項目一覧