Docs 菜单

使用复合运算符查询

在本指南中,您将了解如何通过聚合管道在复合查询中使用多个搜索操作符。

所需时间:5 分钟

1

警告

Navigation Improvements In Progress

We're currently rolling out a new and improved navigation experience. If the following steps don't match your view in the Atlas UI, see the preview Atlas documentation.

  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 如果尚未出现,请单击侧边栏中的 Clusters(集群)。

    会显示集群页面。

2
sample-data-cluster
点击放大
3

单击 Collections 标签页。

sample-data-tab
点击放大
4

单击sample_supplies数据库,然后单击salescollection。

5
1

单击 Aggregation 标签页。

2

单击+ Add Stage开始创建聚合管道。

3

在阶段窗口中,单击标有Select的下拉菜单并选择$search阶段。

4

将占位符代码替换为以下查询。

{
"compound": {
"filter": [{
"text": {
"query": "Online",
"path": "purchaseMethod"
}
}],
"should": [{
"text": {
"query": "notepad",
"path": "items"
}
}]
}
}

此查询将compound操作符与以下内容结合使用:

  • filter子句仅返回purchaseMethodOnline的文档。

  • should子句返回具有items字段且包含notepad的文档,该文档的得分高于不含该字段的文档。

5

在右侧窗格中,结果应包括类似于以下示例文档的文档列表:

items: Array
0: Object
1: Object
2: Object
name: "notepad"
...
storeLocation: "Denver"
customer: Object
couponUsed: false
purchaseMethod: "Online"
_id: ObjectID('5bd761dcae323e45a93cd06e')
saleDate: 2013-11-22T18:49:45.212+00:00

注意

对于每个返回的文档,字段并不总是以相同的顺序显示。

您可以通过单击展开ArrayObject字段以查看其内容。

如果您成功完成了本指南中的过程,那么您就已经使用复合操作符创建了 Atlas Search 聚合阶段,并且看到了操作符中的不同子句如何相互作用以将搜索结果集中在多个轴上。 在下一篇指南中,您将学习如何使用分面(Facet)对搜索结果进行分组。

接下来的步骤
使用分面进行查询
10 分钟

在 MongoDB 中检索包含特定值计数的文档。

入门指南