Docs 菜单
Docs 主页
/
MongoDB Atlas
/ / / /

$searchMeta

在此页面上

  • 语法
  • 字段
  • 行为
  • 元数据结果类型
  • 例子
  • 故障排除
$searchMeta

$searchMeta阶段返回不同类型的元数据结果文档。

注意

如要对分片集合运行 $searchMeta 查询,您的集群必须运行 MongoDB v6.0 或更高版本。

$searchMeta 管道阶段采用以下原型形式:

{
$searchMeta: {
"index": "<index-name>",
"<collector-name>"|"<operator-name>": {
<collector-specification>|<operator-specification>
},
"count": {
<count-options>
}
}
}

$searchMeta 阶段采用包含以下字段的文档:

字段
类型
必要性
说明
<collector-name>
对象
可选的
用于查询的收集器名称。您可以提供一个包含收集器特定选项的文档作为该字段的值。值必须为 facet 才能检索所定义分面名称到该分面的存储桶数组的映射。要了解详情,请参阅分面 。必须指定此项或 <operator-name>
count
对象
Optional
文件,用于指定检索结果计数的计数选项。 要了解更多信息,请参阅 Count Atlas 搜索结果。
index
字符串
Optional

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

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

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

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

$searchMeta 阶段返回的元数据结果文档的结构因结果类型而异。Atlas 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") } } ]

如果 Atlas Search $search 查询遇到问题,请参阅排除 Atlas Search 错误

后退

$search