$searchMeta阶段返回不同类型的元数据结果文档。
注意
如要对分片集合运行 $searchMeta 查询,您的集群必须运行 MongoDB v6.0 或更高版本。
语法
$searchMeta 管道阶段采用以下原型形式:
{   $searchMeta: {     "index": "<index-name>",     "<collector-name>"|"<operator-name>": {       <collector-specification>|<operator-specification>     },     "count": {       <count-options>     },     "returnScope": {       "path": "<embedded-documents-field-to-retrieve>"     }     "returnStoredSource": true | false   } } 
字段
$searchMeta 阶段采用包含以下字段的文档:
| 字段 | 类型 | 必要性 | 说明 | 
|---|---|---|---|
| 
 | 对象 | 可选的 | 用于查询的收集器的名称。您可以提供一个包含收集器特定选项的文档作为该字段的值。值必须为  | 
| 
 | 对象 | Optional | 指定用于检索结果计数的计数选项的文档。要学习;了解更多信息,请参阅对MongoDB搜索结果进行计数。 | 
| 
 | 字符串 | Optional | 要使用的MongoDB Search索引的名称。如果省略,则默认为  如果索引名称拼写错误或者指定的索引在集群上尚不存在,则MongoDB Search 不会返回结果。 | 
| 
 | 对象 | 可选的 | 用于搜索的操作符名称。您可以提供一个包含操作符特定选项的文档作为该字段的值。 您必须指定此项或  | 
| 
 | `` Object | Optional | Object that sets the context of the query to the specified embedded document field. You must also specify  | 
| 
 | 布尔 | 可选的 | Flag that specifies whether to perform a full document lookup on the backend database or return only stored source fields directly from MongoDB Search. If omitted, defaults to  要了解详情,请参阅返回已存储源字段。 | 
行为
$searchMeta 阶段必须是任何管道中的第一阶段。
元数据结果类型
$searchMeta 阶段返回的元数据结果文档的结构因结果类型而异。MongoDB 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") } } ]