使用分面进行查询
概述
在本指南中,您将学习如何使用分面收集器进行查询以分组查询结果,并为这些组返回计数。
所需时间10分钟
你需要以下内容
一个MongoDB账户。参见注册MongoDB账户.
一个Atlas集群。参见创建集群。
示例数据集 已加载到你的集群中。
步骤
在Atlas中,前往集群页面,以访问你的项目。
如果页面尚未显示,请从导航栏中的 组织菜单中选择包含你所需项目的组织。
如果页面尚未显示,请从导航栏中的项目菜单中选择你的项目。
如果页面尚未显示,请点击侧边栏中的集群。
将显示集群页面。
创建带有分面功能的搜索索引。
转到您集群的 Atlas Search 页面。
点击集群的名称。
点击 Atlas Search 选项卡。
Atlas Search 页面显示。
点击 创建索引。
选择 视觉编辑器 配置方法,然后点击 下一步。
对于 数据库和集合,选择 sample_supplies
数据库和 sales
集合。然后,点击 下一步。
点击 优化索引。在 索引配置 窗格中,关闭 动态映射。
在 字段映射 窗格中,点击 添加字段映射。在模态窗口中,从 字段名称 下拉菜单中选择 purchaseMethod
。
从 数据类型 下拉菜单中选择 String
。在模态窗口底部点击 添加。保持 索引配置 值不变,在模态窗口底部点击 添加。
在 字段映射 窗格中,点击 添加字段映射。在模态窗口中,从 字段名称 下拉菜单中选择 storeLocation
。
从 数据类型 下拉菜单中选择 StringFacet
。在模态窗口底部点击 添加。
通过使用聚合管道在你的索引上运行分面查询。
点击 聚合 选项卡。
点击 + 添加阶段 开始创建您的聚合管道。
在阶段窗口中,点击标有 选择... 的下拉菜单,并选择 $searchMeta 阶段。
将占位符代码替换为以下查询。
{ "facet": { "operator": { "text": { "query": ["In store"], "path": "purchaseMethod" } }, "facets": { "locationFacet": { "type": "string", "path": "storeLocation", } } } }
此查询使用 facet
收集器以及
text
操作符来计算具有purchaseMethod
值为In store
的文档。名为
locationFacet
的分面,为每个不同的storeLocation
值创建一个存储桶。
摘要
如果您已成功完成本指南中的过程,您已创建了一个具有分面的 Atlas Search 索引,并创建了一个利用分面来组织匹配记录的聚合管道,以提高可见性。
恭喜。您已完成所有指南。想要迈出下一步吗?注册开发者考试。