$searchMeta
$searchMeta
ステージでは、さまざまなタイプのメタデータ結果ドキュメントが返されます。
注意
シャーディングされたコレクションに対して$searchMeta
クエリを実行するには、クラスターで MongoDB v 6.0以降を実行する必要があります。
構文
$searchMeta
パイプライン ステージには次のプロトタイプ形式があります。
{ $searchMeta: { "index": "<index-name>", "<collector-name>"|"<operator-name>": { <collector-specification>|<operator-specification> }, "count": { <count-options> } } }
フィールド
$searchMeta
ステージは、次のフィールドを持つドキュメントを取得します。
フィールド | タイプ | 必要性 | 説明 |
---|---|---|---|
| オブジェクト | 条件付き | |
| オブジェクト | 任意 | 結果のカウントを取得するためのカウントオプションを指定するドキュメント。 詳しくは、「 Atlas Search結果のカウント 」を参照してください。 |
| string | 任意 | 使用する Atlas Search インデックスの名前。 省略した場合、デフォルトは インデックス名のスペルをうっかり間違えた場合、または指定されたインデックスがクラスターにまだ存在しない場合は、Atlas Search では結果が返されません。 |
| オブジェクト | 条件付き | Name of the operator to search with. You can provide a document that contains the operator-specific options as the value for this field. You must specify this or |
動作
$searchMeta
ステージは、すべてのパイプラインの最初のステージである必要があります。
メタデータ結果のタイプ
$searchMeta
ステージによって返されるメタデータ結果ドキュメントの構造は、結果のタイプによって異なります。 Atlas Search は次の結果のタイプをサポートしています。
タイプ | 結果構造 |
---|---|
| 結果に含まれるカウント結果は、結果として返されるカウントが検索結果の合計数であるか、下限値であるかを示します。 詳細については、「結果のカウント 」を参照してください。 |
| ファセット クエリの結果は、定義されたファセット名を、そのファセットのバケットの配列にマッピングしたものです。 詳細については、「ファセット結果 」を参照してください。 |
例
sample_mflix.movies
コレクションに次のインデックスがあるとします。
{ "mappings": { "dynamic": false, "fields": { "year": { "type": "number" } } } }
次のクエリは、 $searchMeta
ステージを使用して、 1998で公開された映画の数を検索します。
db.movies.aggregate([ { "$searchMeta": { "range": { "path": "year", "gte": 1998, "lt": 1999 }, "count": { "type": "total" } } } ])
[ { count: { total: Long("552") } } ]
トラブルシューティング
Atlas Search $search
クエリで問題が発生している場合は、Atlas Search エラーのトラブルシューティングを参照してください。