MongoDB Search numberFacet タイプを使用すると、ファセットに指定された representation を使用して数値をインデックスできます。BSONタイプ int32、int64、double の番号をインデックスできます。
MongoDB Search は、numberFacet 型としてインデックス付けされたフィールドに対するファセット演算子クエリのみをサポートします。同じフィールドで通常の検索も実行するには、フィールドをタイプ number としてインデックス必要があります。
埋め込まれたドキュメント内の文字列フィールドをファセットには、親フィールドをドキュメント型としてインデックス必要があります。埋め込まれたドキュメント内の stringフィールドをファセットと、 MongoDB Search は一致する親ドキュメントの数のみのファセット数を返します。
MongoDB Search numberは、ファセットの 値を動的にインデックスません。ファセットの number 値をインデックスには、静的マッピングを使用する必要があります。Atlas UIのビジュアル エディターまたはJSONエディターを使用して、number フィールドをnumber タイプとしてインデックスできます。
numberFacet 型の制限
次の制限が適用されます。
ファセット用に
decimal128のインデックスを作成することはできません。ファセット用の配列、または配列に含まれるドキュメント内の数値のインデックスは作成できません。
embeddedDocumentsフィールドの一部としてインデックス付けされた数値フィールドをファセットすることはできません。
numberFacet 型のインデックスを定義する
numberFacetタイプのインデックスを定義するには、Atlas UI で希望する構成方法を選択し、データベースとコレクションを選択します。
[ Refine Your Indexをクリックしてインデックスを構成します。
Field Mappingsセクションで、 Add Field MappingをクリックしてAdd Field Mappingウィンドウを開きます。
[Customized Configuration] をクリックします。
Field Nameドロップダウンからインデックスするフィールドを選択します。
注意
フィールド名の先頭にドル記号(
$)が含まれるフィールドにはインデックスを付けられません。Data Typeドロップダウンをクリックし、NumberFacet を選択します。
numberFacet型のフィールド プロパティを構成します。 詳しくは、「 フィールド プロパティ」を参照してください。[Add] をクリックします。
以下は、numberFacet 型の JSON 構文です。デフォルトのインデックス定義を以下のように置き換えます。フィールドの詳細については、「フィールド プロパティ」を参照してください。
{ "mappings": { "dynamic": true|false, "fields": { "<field-name>": { "type": "numberFacet", "representation": "int64|double", "indexIntegers": true|false, "indexDoubles": true|false } } } }
numberFacet フィールド プロパティを構成する
MongoDB Search numberFacet 型は次のパラメータを取ります。
オプション | タイプ | 必要性 | 説明 | default |
|---|---|---|---|---|
| string | 必須 | フィールドの型。 値は | |
| string | 任意 |
| |
| ブール値 | 任意 |
|
|
| ブール値 | 任意 |
|
|
numberFacet 型の例を試す
次のインデックス定義の例では、 sample_mflix.moviesコレクションを使用します。 サンプル データがすでにクラスターにロードされている場合は、Atlas UI のビジュアル エディターまたはJSONエディターを使用してインデックスを構成できます。 ご希望の構成方法を選択したら、データベースとコレクションを選択し、インデックスを微調整してフィールド マッピングを追加します。
次のインデックス定義の例では、yearフィールドをMongoDB Search numberFacet タイプとしてインデックス化し、 MongoDB Searchファセットを使用してそのフィールドに対するクエリをサポートします。
Add Field Mappingウィンドウで、 Field Nameドロップダウンからyearを選択します。
Data Typeドロップダウンをクリックし、NumberFacet を選択します。
NumberFacet Propertiesのデフォルト値を受け入れます。
[Add] をクリックします。
デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。
{ "mappings": { "dynamic": false, "fields": { "year": { "type": "numberFacet" } } } }
次のインデックス定義の例では、year フィールドをnumberFacet タイプとnumber タイプとしてインデックス化し、クエリの結果の次のタイプを返します。
MongoDB Search
facet(MongoDB Search 演算子)を使用したクエリのメタデータ結果。
Add Field Mappingウィンドウで、 Field Nameドロップダウンからyearを選択します。
Data Typeドロップダウンをクリックし、NumberFacet を選択します。
NumberFacet Propertiesのデフォルト値を受け入れます。
[Add] をクリックします。
ステップ1を繰り返し、 Data Typeドロップダウンから [ Number ] を選択します。
Number Propertiesのデフォルト値を受け入れます。
[Add] をクリックします。
デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。
{ "mappings": { "dynamic": false, "fields": { "year": [ { "type": "numberFacet" }, { "type": "number" } ] } } }
詳細
facet コレクターの詳細とクエリの例については、「例」を参照してください。
ファセット定義を使用してインデックスを作成し、facet コレクターを使用してそのインデックスをクエリする方法については、「 MongoDB Search でファセットの使用方法 」チュートリアルをご覧ください。