Docs 菜单
Docs 主页
/
入门指南

使用复合运算符查询

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

所需时间:5 分钟

  • A MongoDB account. See Sign Up for a MongoDB Account.

  • Atlas 集群。请参阅创建群集

  • 加载到集群中的示例数据集。

  • 具有默认设置和动态索引的搜索索引。 要创建默认动态索引,请参阅构建动态索引。

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

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

  3. 如果 Clusters(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。

    The Clusters page displays.

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 中检索包含特定值计数的文档。

入门指南
第 3 章
Atlas Search
  • 构建动态索引
  • 使用静态字段映射建立索引
  • 使用复合运算符查询
  • 使用分面进行查询