AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

$meta(式 演算子)

$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 クエリを使用して $match ステージを指定する必要があります。$matchステージで $text クエリを指定しない場合は、操作は失敗します。

    • find では、{ $meta: "textScore" } を使用するには、クエリ述語に $text 演算子を指定する必要があります。クエリ述語に $text 演算子を指定しないと、操作は失敗します。

    注意

    $text は、自己管理型(Atlas 以外)配置に対するテキスト クエリ機能を提供します。MongoDBでホストされているデータに対して、 MongoDB は改良された全文クエリ ソリューションであるMongoDB Search も提供します。

  • 集計では、{ $meta: "textScore" } 式は、$project、$group、$sort などの集計式を受け入れるさまざまなステージに含めることができます。

  • find では、{ $meta: "textScore" } 式をプロジェクションと sort() に含めることができます。

  • { $meta: "textScore" } 式をプロジェクションドキュメントの一部にすると、テキスト スコア メタデータを含めることができます。

  • $meta式は、包含または除外のいずれかのプロジェクションに存在することができます。

  • ドキュメントにすでに存在するフィールド名に式を設定すると、プロジェクションのメタデータの値が既存の値を上書きします。

  • 集計では、テキスト スコア値を含むフィールドを出力するステージに続く以降のステージにおいて、クエリ条件を指定したり、そのフィールド上で操作したりできます。たとえば、「集計パイプラインの $text」を参照してください。

  • find では、テキスト スコアにクエリ条件を指定することはできません。代わりに集計を使用してください。

  • { $meta: "textScore" } 式をソート操作の一部として使用すると、テキスト スコア メタデータを基準にソートできます。つまり、

    • 集計では、$sort ステージです。

    • find では、sort() メソッドです。

  • "textScore" メタデータは降順でソートされます。

  • ソート操作で使用するには、{ $meta: "textScore" } 式を任意のフィールド名に設定します。フィールド名はクエリ システムによって無視されます。

  • 集計では、textScore をプロジェクトしなくても、結果のドキュメントを { $meta: "textScore" } でソートできます。

  • find では、textScore をプロジェクションしなくても、結果のドキュメントを { $meta: "textScore" } でソートすることができます。

  • { $meta: "textScore" }集計では、プロジェクションとソートの両方に 式を含めると、プロジェクションとソートで式のフィールド名が異なる場合があります。ソート内のフィールド名はクエリ システムによって無視されます。

  • find では、プロジェクションとソートの両方に 式を含めると、プロジェクションとソートで式のフィールド名が異なる場合があります。ソート内のフィールド名はクエリ{ $meta: "textScore" } システムによって無視されます。

  • { $meta: "indexKey" } 式はデバッグ目的のみで使用され、アプリケーション ロジックには使用できません。

  • { $meta: "indexKey" } 式は cursor.returnKey() よりも優先されます。

  • 集計では、{ $meta: "indexKey" } 式は、$project、$group、$sortByCount などの集計式を受け入れるさまざまなステージに含めることができますが、$sort には含めることができません。ただし、集計パイプラインを使用すると、最初に{ $meta: "indexKey" } 式($project、$addFields など)をプロジェクトし、その後、後続の $sort ステージでそのフィールドによってソートできます。

  • find では、{ $meta: "indexKey" } 式はプロジェクション ドキュメントの一部としてのみ使用できます。

  • 返される値は、データベースがインデックスの値を表す方法によって異なり、バージョンによって変わる場合があります。表される値は、フィールドの実際の値と異なる場合があります。

  • 返される値は、システムによって選択された実行プランによって異なります。たとえば、クエリに答えるために使用できるインデックスが 2 つある場合、"indexKey" メタデータの値は、選択されているインデックスによって異なります。

  • インデックスを使用しない場合、{ $meta: "indexKey" } 式は値を返さず、フィールドは出力に含まれません。

このページを評価

項目一覧