Docs 菜单
Docs 主页
/ /

$searchMeta

$searchMeta

$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 阶段采用包含以下字段的文档:

字段
类型
必要性
说明

<collector-name>

对象

可选的

用于查询的收集器的名称。您可以提供一个包含收集器特定选项的文档作为该字段的值。值必须为 facet 才能检索所定义分面(Facet)名称到该分面(Facet)的存储桶大量的映射。要学习;了解更多信息,请参阅 facet(MongoDB搜索操作符)。您必须指定此项或 <operator-name>

count

对象

Optional

指定用于检索结果计数的计数选项的文档。要学习;了解更多信息,请参阅对MongoDB搜索结果进行计数。

index

字符串

Optional

要使用的MongoDB Search索引的名称。如果省略,则默认为 default

如果索引名称拼写错误或者指定的索引在集群上尚不存在,则MongoDB Search 不会返回结果。

<operator-name>

对象

可选的

用于搜索的操作符名称。您可以提供一个包含操作符特定选项的文档作为该字段的值。 您必须指定此项或 <collector-name>$searchMeta仅返回默认的count 元数据。

returnScope

`` Object

Optional

Object that sets the context of the query to the specified embedded document field. You must also specify returnStoredSource and set it to true if your cluster MongoDB version is less than 8.2.

returnStoredSource

布尔

可选的

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 false. Must be true to if you specify returnScope and your cluster MongoDB version is less than 8.2.

要了解详情,请参阅返回已存储源字段

$searchMeta 阶段必须是任何管道中的第一阶段。

$searchMeta 阶段返回的元数据结果文档的结构因结果类型而异。MongoDB Search 支持以下结果类型:

类型
Result Structure(结果结构)

count

结果中包含的计数结果指示结果中返回的计数是搜索结果的总数还是下限。要了解详情,请参阅计数结果

facet

分面查询的结果是所定义的分面名称到该分面的存储桶数组的映射。要了解详情,请参阅分面结果

假设 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") } } ]

如果您在使用MongoDB Search $search 查询时遇到问题,请参阅查询故障排除。

后退

文档:$search

在此页面上