过滤器显示与给定条件匹配的结果子集。MongoDB图表提供了两种过滤数据的方式。您可以使用:
图表构建器包含一个过滤器选项卡,您可以在其中拖放字段以为数据指定过滤器。要使用过滤器标签过滤数据:
单击图表构建器中的中心选项卡:
将字段从左侧的字段拖到选项卡的“ 图表过滤器”部分。
所选字段的数据类型确定可用的过滤选项。您可以使用以下数据类型过滤字段:
将数字字段拖到过滤器面板时,可以基于该字段的最小值和/或最大值进行过滤。
要指定最小值: | 要指定最大值: |
---|---|
|
|
例
如果
启用5
了“ 包含”设置时最小值为,则MongoDB图表会显示该字段大于或等于的文档5
。
另外,如果“ 包容性”已关闭,则MongoDB图表会显示该字段大于的文档5
。
将字符串或ObjectId字段拖到 过滤器面板时,MongoDB图表会显示最多20个不同字段值的列表。如果存在20个以上的不同值,则MongoDB图表会显示20个随机选择的值。
该列表还包括:
null
该字段值或缺少该字段的文档,为NULL / MISSING。""
字符串字段值的文档的
空字符串。(仅字符串字段。)选择要在图表中显示的值。默认情况下,将选择所有值。
小费
如果选择了所有值,则可以单击 列表顶部的“全部取消选择”以隐藏所有值。
如果未选择所有值,则可以单击“全选” 以返回显示所有值的默认状态。
要显示列表中未包含的特定值,请点击添加值来添加该值。
重要
对于ObjectId字段,您输入的值必须是格式正确的ObjectId,否则MongoDB图表不接受该值。
要显示所有未列入名单的其他值,检查 所有其他值。
将日期字段拖到过滤器面板时,可以基于指定的日期范围进行过滤。此范围可以是:
选择适当的选项卡以获取有关日期过滤器的更多信息:
相对日期过滤器指定相对于图表绘制时间的范围。要定义日期范围,请指定相对于当前日期的过去时间段和/或将来的时间段。相对是默认的日期过滤选项。
设置日期过滤器的下限: | 设置日期过滤器的上限: |
---|---|
|
|
绝对日期过滤器使用绝对日期来定义其上限和下限。要定义绝对日期范围,请 在日期过滤卡顶部选择绝对。默认情况下,假定在过滤器中指定的日期为UTC,与集合中的原始数据匹配。您可以为过滤器指定时区,以根据需要调整日期值。
设置日期过滤器的下限: | 设置日期过滤器的上限: |
---|---|
|
|
注意
范围中使用的日期和时间格式取决于您的位置,具体取决于您的浏览器设置。
例
以下绝对日期过滤器仅显示具有年份字段的
文档:Workout Date (As Date)
2018
过滤器返回所有文档,其中包含一个
字段,从“ 包含”到“ 专用”。Workout Date (As Date)
January 1, 2018 12:00:00
AM
January 1, 2019 12:00:00 AM
使用过滤卡底部的“ 时区”下拉列表为您的绝对日期过滤器指定时区。
默认情况下,MongoDB将日期值存储在 UTC中。当您更改时区时,图表会相对于所选时区修改日期值。因此,绝对日期过滤器可能会返回不同的文档,具体取决于所选的时区。
例
考虑一个绝对日期过滤器,其范围从2018年1月1日12:00:00 AM(含)到2019年1月1日12:00:00 AM(不含)。默认情况下,UTC日期为2019年1月1日2:00:00的文档将不包括在此日期范围内。但是,如果我们将时区调整为 中美洲(UTC-06:00),则会返回此文档,因为调整后的日期是2018年12月31日8:00:00 PM。
注意
您不能在多个过滤器中使用同一字段。
您可以在“ 过滤器”选项卡中启用还是禁用过滤器。禁用的过滤器不会影响图表中显示的文档。禁用的过滤器显示为灰色,并且只有启用后才能进行编辑。
要切换是否启用过滤器,请将鼠标悬停在过滤器上,然后将显示在过滤器顶部的切换设置为所需设置。
的查询图表显示栏以上支持比过滤器板更复杂的查询。此外,您可以使用查询栏创建 聚合管道以在呈现数据之前对其进行处理。
要使用查询栏过滤数据:
下表显示了制作纪录片或传记电影的导演人数最多的5个国家(“ X轴下的限制结果 ” 已启用并设置为5)。
该图表使用以下查询:
genres
是一个数组,其中每个元素都是电影类型。此筛选器可确保仅将制作过纪录片或传记电影的导演包括在特定国家/地区的导演总数中。
下图显示了随着时间的推移电影的平均收视率Metacritic的分级 5年期。
该图表使用以下查询:
writers
是一个数组,其中每个元素都是为电影做出贡献的作家。此筛选器通过检查第二个数组元素是否存在,确保只有至少两个作者的文档才被纳入平均Metacritic评分。
使用$regex
查询运算符使用正则表达式进行过滤:
注意
您必须将模式用引号引起来。您不能使用/pattern/
语法。
例如,要查找jobs
字段以字母开头的所有文档A
,可以在“ 查询”栏中输入以下内容
:
要查找jobs
字段以字母A
或开头的所有文档a
,请在查询栏中输入以下内容
:
下图显示了按购买方式分类的办公用品公司的总销售金额:
该图表使用以下查询:
集合中的每个文档代表一次销售。items
是一个数组,其中每个元素都是在销售期间购买的商品。
此查询将显示的文档限制为仅包含saleDate
等于或比数组中至少包含5个元素更新的文档。January 1, 2017
items
如果未正确索引集合,大型集合上的筛选器可能会遇到性能问题。
MongoDB图表查询栏中使用的日期函数与mongo shell中使用的日期函数一致且兼容 。结果,您可以使用:
new Date()
,ISODate()
, 要么new ISODate()
。该Date()
函数(相对于
构造函数)以字符串形式返回当前日期,因此不能用于查询图表中的日期。new Date()