使用组合运算符进行查询
概述
在本指南中,您将学习如何通过使用聚合管道在复合查询中同时使用多个搜索运算符。
所需时间5分钟
所需资源
一个MongoDB账户。请参阅注册MongoDB账户.
一个Atlas集群。请参阅 创建集群。
样本数据集已加载到您的集群中。加载样本数据。
具有默认设置和动态索引的搜索索引。要创建默认动态索引,请参阅 构建动态索引。
步骤
1
在Atlas中,转到为您的项目创建集群页面。
如果尚未显示,请从导航栏中的 组织菜单中选择包含您所需项目的组织。
如果尚未显示,请从导航栏中的项目菜单中选择您所需的项目。
如果尚未显示,请点击侧边栏中的集群。
显示集群页面。
3
点击集合选项卡。

点击放大
4
点击sample_supplies
数据库,然后点击sales
集合。
5
在聚合选项卡中运行对您的索引的复合查询。
1
点击聚合选项卡。
2
点击+ 添加阶段开始创建您的聚合管道。
3
在阶段窗口中,点击标有 选择 的下拉菜单,并选择 $search 阶段。
4
将占位符代码替换为以下查询。
{ "compound": { "filter": [{ "text": { "query": "Online", "path": "purchaseMethod" } }], "should": [{ "text": { "query": "notepad", "path": "items" } }] } }
此查询使用具有以下内容的 compound
操作符。
使用
filter
子句仅返回具有purchaseMethod
为Online
的文档。使用
should
子句返回具有包含notepad
的items
字段的文档,其评分高于不包含的文档。
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
注意
返回的每个文档中字段不一定按相同顺序出现。
您可以通过单击它们来展开 Array
和 Object
字段以查看其内容。
摘要
如果您成功完成了本指南中的程序,您已创建了一个使用复合操作符的 Atlas Search 聚合阶段,并了解了操作符中的不同子句如何相互作用来聚焦您的搜索结果。在下一指南中,您将学习如何使用分面分组搜索结果。
章节3
Atlas Search