Skip to main content

👐 构建搜索查询

你可以使用 $search 聚合管道阶段来构建 Atlas Search 查询。

MongoDB 聚合管道 是多阶段的“流水线”,可以重塑数据并执行计算。管道可以由一个或多个聚合阶段组成,执行不同的操作,如匹配、分组、排序和输出。有关所有可用阶段的详尽列表,请访问完整的管道操作符列表

caution

如果你不熟悉聚合管道,你应该从 聚合管道实验室 开始。

在本节中,我们将使用 $search 阶段构建一个聚合管道,该阶段使用你刚刚创建的 Atlas Search 索引执行全文搜索。

在 Atlas UI 中进行聚合

导航到数据库部署的 Collections 选项卡,选择 books 集合,然后从集合详情下的导航栏中导航到 Aggregation 选项卡。

集合详情页面上突出显示的聚合选项卡
tip

此时 Atlas UI 可能会显得有点拥挤。你也可以使用 Compass 中的聚合管道构建器来获得更好的体验。

点击 Add Stage 按钮,并在 select 输入框中输入 $search

选择了 $search 阶段的管道第 1 阶段

$search 阶段添加以下代码。

{
index: "fulltextsearch",
text: {
query: "cooking",
path: ["title"]
}
}

该阶段使用 "fulltextsearch" 索引。如果索引是 "default",你不需要显式定义索引,但为了清晰起见,你可以保留它。

text 操作符将在 title 字段中搜索 "cooking"。你应该在右侧看到返回的文档集合。

点击 Add Stage 按钮,向下滚动并选择 $project 作为第 2 阶段。

选择了 $project 阶段的管道第 2 阶段

$project 阶段添加以下实现代码来过滤返回的字段。

{
title: 1,
authors: 1,
genres: 1,
pages: 1
}

此时,你应该看到与上一节相似的结果,因为这几乎是相同的查询。