分析数据模式
Schema 标签页概述了特定集合中字段的数据类型和形状。数据库和集合会显示在左侧导航栏中。
概述基于 集合文档的抽样。模式概述可能包括有关字段内容的其他数据,例如日期和整数的最小值和最大值、特定值出现的频率以及数据的关联基数。
MongoDB 具有灵活的模式模型,这意味着不同文档的某些字段可能包含不同类型的数据。例如,名为 address
的字段可能包含某些文档中的字符串和整数、其他文档中的对象或所有三者的某种组合。
对于异构字段,Schema 标签页将显示字段所包含的各种数据类型的细分,并显示每种数据类型的百分比。
例子
Schema(架构)选项卡在顶部显示有关 test.restaurants
集合的大小信息,包括该集合中的文档总数、平均文档大小以及该集合占用的总磁盘空间。
将显示以下字段及其详细信息:
_id
字段是 ObjectId。每个 ObjectID 都包含一个时间戳,因此 Compass 显示采样文档的创建时间范围。address
字段包含四个嵌套字段。您可以展开字段面板,查看针对每个嵌套字段的分析。borough
字段包含一个字符串,表示餐馆所在的行政区。关联基数足够低,Compass 可以提供字段内容的分级条,最频繁出现的字符串位于左侧。grades
字段包含字符串数组。分析显示最小、最大和平均数组长度。
查询栏
使用 Schema(模式)标签页中的查询栏,您可以创建查询筛选器来限制结果集。单击 Options(选项)按钮可指定查询选项,例如要显示的特定字段以及要返回的结果数。
注意
对于超过 1000 个文档的查询结果集,Compass 显示结果的子集。 否则,Compass 将显示整个结果集。
有关采样的详情,请参阅采样。
提示
在 Schema 选项卡中,还可以使用查询生成器在查询栏中输入查询。
字段描述
对于每个字段,Compass 都会显示有关字段包含的一个或多个数据类型和值范围的摘要信息。根据数据类型和关联基数级别,Compass 会显示直方图、分级条形图、地理地图和样本数据,以让人们了解每个字段中包含的数据的形状和范围。
具有单一数据类型的字段
以下是名为 last_login
的字段的数据类型摘要示例,该字段包含类型为 date
的数据。
多种数据类型字段
对于包含多种数据类型的字段,Compass 显示文档中各种数据类型的百分比细分。在以下示例中,图表显示名为 phone_no
的字段的内容,其中 81% 的文档属于类型 string
,其余 19% 属于类型 number
。
缺失字段
如果在集合包含的文档中,并非所有字段都包含值,则缺失值显示为 undefined
。在以下示例中,字段 age
在 40% 的抽样文档中没有记录值。
字符串
字符串可通过三种不同的方式出现。如果字段中存在完全唯一的字符串,Compass 将显示从指定字段中随机选择的字符串值。单击圆形刷新图标可查看从字段中随机选择的一组新值。
如果仅有几个不同的字符串值,Compass 则会在单个分级栏中显示这些字符串,而该分级栏还会显示这些字符串值在所有值中的占比。
如果存在多个字符串值且有一些重复项,Compass 会显示一个直方图,指示在字段中找到的每个字符串的频率。
注意
将光标移到每个栏上会显示一则工具提示,其中显示了该字符串的值。
数字
数值的表示方式类似于字符串。 唯一数值按以下方式显示:
重复数值显示在指示其频率的直方图中:
日期和对象 ID
表示日期的字段(以及包含 ObjectId 数据类型的字段,其中包括时间戳)显示在多个条形图中。顶行的两个图表分别代表时间戳值的星期和时间。
底部的单个图表显示第一个和最后一个时间戳值,垂直线表示时间戳在第一个到最后一个之间的分布。
嵌入式文档与数组
包含子文档或数组的字段显示时旁边有一个小三角形,并且可视化表示子文档或数组中包含的数据。
单击三角形,展开字段并查看嵌入的文档:
GeoJSON和[longitude,latitude]
数组
包含 GeoJSON 数据或 [longitude,latitude]
数组的字段将与交互式地图一起显示。有关在 Compass 中与位置数据交互的更多信息,请参阅分析位置数据。
注意
Compass Isolated Edition 中不提供第三方映射服务。
查看混合类型图表
如果某一字段采用混合类型,则可通过单击 type
字段来查看每种类型的不同图表。在以下示例中,age
字段会显示采用字符串形式的值:
单击 number
类型会使图表显示其数值数据:
查询构建器
在 Schema 标签页,您可以在查询栏中手动键入筛选器或使用 Compass 查询构建器来生成筛选器。查询构建器允许您从模式中的一个或多个字段内选择数据元素,并构造与所选元素匹配的查询。
提示
你可以通过使用可点击的查询构建器来撰写初始查询筛选器,然后根据你的确切要求手动编辑生成的筛选器。
以下过程介绍使用查询栏创建复杂查询的相关步骤。
分析位置数据
在 Schema 标签页中,您可以使用交互式地图来过滤和分析位置数据。如果字段包含 GeoJSON 数据或 [longitude,latitude]
数组,则 Schema 标签页将显示地图,其中包含字段中的点。位置字段的数据类型为 coordinates
。
应用位置筛选器
您可以对映射应用过滤器,以便仅分析特定范围的点。要定义位置过滤器,请执行以下操作:
单击地图右上方的 Circle(圆圈)按钮。
在地图上单击并拖动以绘制一个圆圈,其中包含要分析的地图区域。
根据需要重复此流程,以在模式分析中包括地图的其他区域。
绘制位置过滤器时,查询栏会更新,以显示应用于模式分析的 $GeoWithine 查询中使用的确切坐标。
如果指定多个位置过滤器,查询就会变为带有多个 $geoWithin
操作符的 $or 查询。
编辑位置筛选器
要移动或调整位置过滤器的大小,请单击地图右侧的 。您将进入过滤器编辑模式,如下所示:
- 移动筛选器
- 单击并拖动圆圈边缘的正方形。
- 要调整筛选器大小
- 单击并拖动圆圈边缘的正方形。
修改筛选器后,单击 Save。
删除位置筛选器
要从地图中删除位置筛选器,请执行以下操作:
单击地图右侧的 。
点击:
用于删除该筛选器的位置筛选器。
Clear All 以删除所有位置过滤器。
单击 Save(连接)。
故障排除
如果模式分析超时,可能是因为正在分析的集合非常大,导致 MongoDB 在分析完成之前停止操作。增加MAX TIME MS
的值以使操作有时间完成。
要增加 MAX TIME MS 的值:
在查询栏中,展开 Options(选项)。
增加 MAX TIME MS 的值以适应您的集合。MAX TIME MS 默认为 60000 毫秒或 60 秒,但分析大型集合可能需要数十秒。
增加 MAX TIME MS 的值后,请单击 Analyze(分析)重试模式分析。