过滤器显示与给定条件匹配的一部分结果。Atlas Charts 提供两种方法以过滤单个图表的数据。您可以使用:
要学习;了解如何在仪表盘上的多个图表中过滤结果,请参阅按字段值筛选仪表盘。
为数据创建过滤器
图表生成器包含一个筛选器选项卡,您可以在其中拖放字段来指定 数据筛选器。使用筛选器选项卡筛选数据:
单击图表生成器中的中心标签页:
![显示如何访问筛选标签页的图片]()
将左侧 Fields(字段)中的一个字段拖到此标签页的 Chart Filters(图表筛选器)部分。
所选字段的数据类型决定了可用的过滤器选项。选择字段类型和日期过滤器类型(如适用),以查看可用的过滤器选项。
注意
不能在多个筛选器中使用同一字段。
启用或禁用筛选器
您可以启用或禁用 Filter(筛选器)标签页中的筛选器。已禁用的筛选器不会影响图表中显示的文档。已禁用的筛选器显示为灰色,在启用它们之前无法对其进行编辑。
如需切换是否启用筛选器,请将鼠标悬停在筛选器上, 然后将出现在筛选器顶部的切换按钮设置为所需设置。

展开或收起筛选器
您可以通过单击图表筛选器卡上的 Show(显示)或 Hide(隐藏)来展开或折叠该卡。
禁用的筛选器会自动折叠。
启用的折叠筛选器仍会应用于图表。
使用查询栏筛选数据
图表显示上方的Query栏支持比过滤面板更复杂的查询。 此外,您可以使用查询栏创建聚合管道,以便在呈现数据之前对其进行进程。
要使用 Query 栏筛选数据:
在 Query 栏中输入过滤文档。使用与 db.collection.find() 方法查询部分相同的语法。过滤文档必须放在大括号中。
单击 Apply(连接)。
以下示例展示了如何使用不同的操作符构建查询。展开示例以查看查询。
以下图表显示了拍摄过纪录片或传记片的导演数量最多的 5 个国家/地区(X Axis 下的 Limit Results 已启用且设置为 5)。

该图表使用了以下查询:
{ $or: [ { genres: "Documentary" }, { genres: "Biography" } ] }
genres 是一个数组,其中每个元素都是一个电影类型。该筛选器确保只有拍摄过纪录片或传记片的
导演才会被纳入特定国家/地区的导演总数中。
下图表显示了按5年周期分箱的一段时间内电影的平均 Metacritic 评分。

该图表使用了以下查询:
{ 'writers.1': { $exists: true }}
writers 是一个大量,其中每个元素都是为电影做出贡献的作者。 此过滤通过检查第二个大量元素是否存在,确保只有具有至少两个编写器的文档才会计入平均值Metacritic 评级。
使用$regex查询运算符使用正则表达式进行过滤:
{ <field>: { $regex: "pattern", $options: "<options>" } }
示例,要查找jobs字段以字母A开头的所有文档,您应在Query栏中写入以下内容:
{ "jobs" : { $regex : "^A" } }
要查找jobs字段以字母A或a开头的所有文档,您应在Query栏中写入以下内容:
{ "jobs" : { $regex : "^A", $options : "i" } }
下图表显示了一家办公用品公司的总销售额,按购买方式分类:

该图表使用了以下查询:
{ $and: [ { saleDate: { $gte: new Date("2017-01-01") } }, { 'items.4': { $exists: true } } ] }
集合中的每个文档都代表一次销售。 items是一个大量,其中每个元素都是促销期间购买的商品。
此查询将显示的文档限制为saleDate等于或晚于January 1, 2017且items大量中至少有5元素的文档。
地址查询错误
如果查询无效,Charts 会在 Query(查询)栏中显示 图标。
如果尚未显示 Query(查询)栏,请单击此栏以查看错误详细信息。Charts 显示以下错误的详细信息:
客户端错误,例如格式错误的 JSON,以及
服务器端错误,如无效 MQL。

查看错误详情,然后相应调整查询。
Considerations
如果未对大型集合进行适当索引,则针对大型集合的筛选器可能会遇到性能问题。
Atlas Charts查询栏中使用的日期函数与
mongosh中使用的日期函数一致且兼容。因此,您可以使用:new Date(),ISODate(),或new ISODate().
Date()函数(与new Date()构造函数不同)以字符串形式返回当前日期,因此不能用于在 Charts 中查询日期。
