定義
$metaドキュメントに関連付けられたメタデータを返します。例:テキスト検索を実行すると返される
"textScore"。$meta式は次のとおりです。{ $meta: <metaDataKeyword> } $meta式では、 として次の値を指定できます。<metaDataKeyword>Keyword説明"textScore"一致するドキュメントごとに、対応する
$textクエリに関連付けられたスコアを返します。テキスト スコアは、ドキュメントが 1 つまたは複数の検索タームにどの程度一致したかを示します。{ $meta: "textScore" }$textクエリと組み合わせて使う必要があります。前のバージョンでは、
$textクエリと組み合わせて使用されない場合、null スコアが返されます。"indexKey"テキスト以外のインデックスが使用されている場合、ドキュメントのインデックス キーを返します。
{ $meta: "indexKey" }式はデバッグ目的のみで使用され、アプリケーション ロジックには使用されず、cursor.returnKey()よりも優先されます。MongoDB Search では、次のような追加の
$metaキーワードが提供されています。詳細については、 MongoDB Search のドキュメントを参照してください。
重要
次の
$metaキーワードは、Stable API V1 でサポートされていません。"textScore""indexKey""score""searchScore""scoreDetails""searchHighlights""searchSequenceToken""searchScoreDetails""searchRootDocumentId""vectorSearchScore"
searchScore$searchはvectorSearchScoreクエリでのみ使用でき、$vectorSearchは クエリでのみ使用できます。他のクエリでsearchScoreとvectorSearchScoreを使用すると、そのクエリは失敗します。は、 を持つ
$searchクエリでのみ使用できます。searchRootDocumentIdreturnScope
動作
テキスト スコア メタデータ $meta: "textScore"
$text 検索が必要です
{ $meta: "textScore" }式は$textと組み合わせて使用する必要があります。以下に例を挙げます。find では、
{ $meta: "textScore" }を使用するには、クエリ述語に$text演算子を指定する必要があります。クエリ述語に$text演算子を指定しないと、操作は失敗します。
注意
$textは、自己管理型(Atlas 以外)配置に対するテキスト クエリ機能を提供します。MongoDBでホストされているデータに対して、 MongoDB は改良された全文クエリ ソリューションであるMongoDB Search も提供します。
可用性
プロジェクションでの使用
テキスト スコアでフィルタリング
集計では、テキスト スコア値を含むフィールドを出力するステージに続く以降のステージにおいて、クエリ条件を指定したり、そのフィールド上で操作したりできます。たとえば、「集計パイプラインの $text」を参照してください。
find では、テキスト スコアにクエリ条件を指定することはできません。代わりに集計を使用してください。
ソートでの使用
"textScore"メタデータは降順でソートされます。ソート操作で使用するには、
{ $meta: "textScore" }式を任意のフィールド名に設定します。フィールド名はクエリ システムによって無視されます。
プロジェクションを使わないソート
集計では、
textScoreをプロジェクトしなくても、結果のドキュメントを{ $meta: "textScore" }でソートできます。find では、
textScoreをプロジェクションしなくても、結果のドキュメントを{ $meta: "textScore" }でソートすることができます。
プロジェクションによるソート
{ $meta: "textScore" }集計では、プロジェクションとソートの両方に 式を含めると、プロジェクションとソートで式のフィールド名が異なる場合があります。ソート内のフィールド名はクエリ システムによって無視されます。find では、プロジェクションとソートの両方に 式を含めると、プロジェクションとソートで式のフィールド名が異なる場合があります。ソート内のフィールド名はクエリ
{ $meta: "textScore" }システムによって無視されます。
インデックス キー メタデータ $meta: "indexKey"(集計と検索)
使用法
{ $meta: "indexKey" }式はデバッグ目的のみで使用され、アプリケーション ロジックには使用できません。{ $meta: "indexKey" }式はcursor.returnKey()よりも優先されます。
可用性
集計では、
{ $meta: "indexKey" }式は、$project、$group、$sortByCountなどの集計式を受け入れるさまざまなステージに含めることができますが、$sortには含めることができません。ただし、集計パイプラインを使用すると、最初に{ $meta: "indexKey" }式($project、$addFieldsなど)をプロジェクトし、その後、後続の$sortステージでそのフィールドによってソートできます。find では、
{ $meta: "indexKey" }式はプロジェクション ドキュメントの一部としてのみ使用できます。
戻り値
返される値は、データベースがインデックスの値を表す方法によって異なり、バージョンによって変わる場合があります。表される値は、フィールドの実際の値と異なる場合があります。
返される値は、システムによって選択された実行プランによって異なります。たとえば、クエリに答えるために使用できるインデックスが 2 つある場合、"indexKey" メタデータの値は、選択されているインデックスによって異なります。
インデックスを使用しない場合、
{ $meta: "indexKey" }式は値を返さず、フィールドは出力に含まれません。