分析您的数据模式
的模式选项卡提供了特定集合中字段的数据类型和形状的概述。数据库和集合在左侧导航中可见。
概述基于对集合中的文档进行采样。模式概述可能包含有关字段内容的额外数据,例如日期和整数的最大值和最小值,特定值的频率,以及数据的基数。
MongoDB有一个灵活的模式模型,这意味着某些字段可能包含从一份文档到下一份文档不同类型的数据。例如,名为address
的字段可能在某些文档中包含字符串和整数,在其他文档中包含对象,或者包含所有三种类型的组合。
对于异构字段,模式选项卡会显示字段中包含的各种数据类型及其百分比。
示例
模式选项卡在顶部显示了test.restaurants
集合的大小信息,包括集合中的文档总数,平均文档大小,以及集合占用的总磁盘空间。
以下字段显示详细信息
_id
字段是一个ObjectId。每个ObjectId包含一个时间戳,因此Compass显示采样文档的创建时间范围。address
字段包含四个嵌套字段。您可以展开字段面板以查看每个嵌套字段的分析。borough
字段包含一个字符串,表示餐厅所在的区。其基数足够低,Compass可以提供一个按字段内容分级的条形图,最频繁出现的字符串在左侧。grades
字段包含字符串数组。分析显示数组的最大值、最小值和平均值。

查询栏
在架构选项卡中,使用查询栏可以创建查询过滤器以限制结果集。点击选项按钮以指定查询选项,例如要显示的特定字段和返回的结果数量。
注意
对于超过1000个文档的查询结果集,Compass会显示结果子集。否则,Compass会显示整个结果集。
有关采样的详细信息,请参阅采样。

提示
在架构选项卡中,您还可以使用查询构建器将查询输入到查询栏中。
字段说明
对于每个字段,Compass都会显示该字段包含的数据类型或数据类型的总结信息以及值范围。根据数据类型和基数级别,Compass会显示直方图、分级条形图、地理地图和样本数据,以提供每个字段中包含的数据的形状和范围感。
具有单一数据类型的字段
以下是一个名为 last_login
的字段的数据类型摘要示例,该字段包含类型为 date
的数据。

具有多种数据类型的字段
对于包含多个数据类型的字段,Compass 显示了跨文档的各种数据类型的百分比分解。以下示例中,图表显示了名为 phone_no
的字段的内 容,其中 81% 的文档是类型为 string
,其余 19% 是类型为 number
。

缺失的字段
如果一个集合包含在其中的文档不是所有字段都有值,则缺失的值将显示为 undefined
。以下示例中,字段 age
在 40% 的样本文档中没有记录值。

字符串
字符串可以以三种不同的方式出现。如果字段中完全独特的字符串,Compass会显示指定字段中字符串值的随机选择。点击圆形刷新图标,查看字段中随机选择的新值集。

如果只有少量不同的字符串值,Compass会显示一个单级梯形条,表示字符串值的总体比例。

如果有多个字符串值,其中包含一些重复项,Compass会显示一个直方图,指示字段中找到的每个字符串的频率。

注意
将鼠标移至每个条形上,将显示一个工具提示,显示字符串的值。
数字
数字在表示上与字符串相似。唯一的数字以以下方式显示

重复的数字以直方图显示,指示其频率

日期和ObjectID
表示日期(以及包含ObjectID数据类型(包括时间戳)的字段)的字段显示在多个条形图中。顶部两行中的两个图表表示时间戳值的一周中的天数和一天中的时间。
底部单图表显示了第一个和最后一个时间戳值,垂直线表示时间戳在第一个到最后一个范围内的分布。

嵌入式文档和数组
包含子文档或数组的字段旁边显示一个小三角形,并显示子文档或数组内的数据可视化表示。

单击三角形以展开字段并查看嵌入的文档

GeoJSON和[经度,纬度]
数组
包含GeoJSON数据或[经度,纬度]
数组的字段会显示交互式地图。有关在Compass中交互处理位置数据的信息,请参阅指南针,请参阅分析位置数据。

注意
指南针独立版中不可用第三方地图服务。
查看混合类型图表
如果字段包含混合类型,您可以通过单击类型
字段来查看每种类型的不同图表。在下面的示例中,年龄
字段显示了字符串值

单击数字
类型会导致图表显示其数值数据

查询构建器
在模式选项卡中,您可以直接在查询栏中手动输入过滤器,或者使用Compass查询构建器生成过滤器。查询构建器允许您从模式中的一个或多个字段中选择数据元素,构建与所选元素匹配的查询。
提示
您可以通过点击查询构建器来构建初始查询过滤器,然后根据您的确切需求手动编辑生成的过滤器。
以下步骤描述了使用查询栏构建复杂查询的步骤。
分析位置数据
在模式标签页中,您可以使用交互式地图来过滤和分析位置数据。如果您的字段包含GeoJSON数据或[经度,纬度]
数组,则模式标签页会显示包含字段中点的地图。位置字段的类型是坐标
。

应用位置过滤器
您可以对地图应用过滤器,以仅分析特定的点范围。要定义位置过滤器
点击地图右上角的圆形按钮。
在地图上点击并拖动以绘制包含您想要分析的地图区域的圆圈。
根据需要重复此过程,以将地图的额外区域包含在方案分析中。

随着您绘制位置过滤器,查询栏更新以显示在方案分析中应用的$geoWithin
查询中使用的精确坐标。
如果您指定多个位置过滤器,则查询成为具有多个$geoWithin
操作符的$or
查询。
编辑位置过滤器
要移动或调整位置过滤器的尺寸,请点击地图右侧的 。您将进入过滤器编辑模式,如下所示

- 移动过滤器
- 点击并拖动圆圈中心的方形。
- 调整过滤器尺寸
- 点击并拖动圆圈边缘的方形。
修改完过滤器后,点击 保存。
删除位置过滤器
从地图中删除位置过滤器
点击地图右侧的 。
点击以下任一选项
要删除的过滤器。
全部清除 以删除所有位置过滤器。
点击 保存。
故障排除
如果您的模式分析超时,可能是因为您正在分析的集合非常大,导致MongoDB在分析完成前停止了操作。将MAX TIME MS
的值增加,以便允许操作完成。
增加MAX TIME MS
的值
在查询栏中,展开
选项
。将
MAX TIME MS
的值增加以适应您的集合。MAX TIME MS
默认为60000毫秒,即60秒,但大型集合可能需要数十秒才能分析。
增加MAX TIME MS
的值后,通过点击分析
来重试您的模式分析。