MongoDB工具 >MongoDB指南针 >与您的数据互动 > 分析您的数据架构
在Compass Community Edition中不可用
“ 架构”选项卡提供了特定集合中字段的数据类型和形状的概述。数据库和集合在左侧导航中可见。
概述基于对 集合中的文档进行采样。模式概述可以包括有关字段内容的其他数据,例如日期和整数的最小值和最大值,特定值的出现频率以及数据的基数。
MongoDB具有 灵活的架构模型,这意味着某些字段可能包含从一个文档到下一个文档的不同类型的数据。
例
名为的字段address
在某些文档中可能包含字符串和整数,在另一些文档中可能包含对象,或者这三者的某种组合。
对于异类字段,“ 架构”选项卡显示该字段中包含的各种数据类型的细分,并表示每种数据类型的百分比。
例
“ 架构”选项卡test.restaurants
在顶部显示有关集合的大小信息
,包括集合中文档的总数,平均文档大小以及该集合占用的磁盘总空间。
以下字段显示了详细信息:
_id
字段是一个
ObjectId。每个ObjectId都包含一个时间戳,因此Compass会显示采样文档的创建时间范围。address
字段包含四个嵌套字段。您可以展开字段面板以查看每个嵌套字段的分析。borough
字段包含一个字符串,指示餐厅所在的自治市镇。基数足够低,以至于Compass可以提供字段内容的分级条形,最左侧出现的字符串。categories
字段包含字符串数组。分析显示最小,最大和平均阵列长度。使用查询栏在架构选项卡,您可以创建一个查询过滤器来限制你的结果集。单击 选项按钮以指定查询选项,例如要显示的特定字段和要返回的结果数。
小费
在“ 架构”选项卡中,您还可以使用“ 查询生成器”在查询栏中输入查询。
对于每个字段,Compass显示有关该字段包含的一种或多种数据类型以及值范围的摘要信息。根据数据类型和基数级别,指南针会显示直方图,渐变条,地理地图和样本数据,以提供每个字段中包含的数据的形状和范围的感觉。
对于包含多种数据类型的字段,Compass会显示文档中各种数据类型的百分比细分。在下面的示例中,图表显示了一个名为的字段的内容,phone_no
其中81%的文档为type string
,其余19%为type number
。
字符串可以三种不同的方式出现。如果字段中完全是唯一的字符串,则Compass将显示从指定字段中随机选择的字符串值。单击循环刷新图标以从字段中查看一组新的随机选择的值。
如果只有几个不同的字符串值,则Compass将在单个分级栏中显示字符串,该渐变栏中将显示字符串值的填充百分比。
如果有多个重复的字符串值,Compass将显示一个直方图,指示在字段中找到的每个字符串的频率。
注意
将鼠标移到每个栏上以显示一个工具提示,其中显示了字符串的值。
跨多个条形图显示了表示日期的字段(以及包含ObjectID数据类型的字段,其中包括时间戳)。第一行的两个图表分别代表时间戳值的星期几和一天中的时间。
底部的单个图表显示了第一个和最后一个时间戳记值,垂直线表示时间戳记在第一个到最后一个范围内的分布。
在“ 架构”选项卡中,您可以在查询栏中手动输入过滤器,也可以使用“指南针”查询生成器生成过滤器。使用查询构建器,您可以从架构中的一个或多个字段中选择数据元素,并构造与所选元素匹配的查询。
小费
您可以使用可点击的查询构建器来组成初始查询过滤器,然后根据您的确切要求手动编辑生成的过滤器。
以下过程描述了使用查询栏构建复杂查询所涉及的步骤。
要运行查询,请点击Analyze。单击重置 以清除查询。
在“ 架构”选项卡中,您可以使用交互式地图来过滤和分析位置数据。如果您的字段包含
GeoJSON数据或
[latitude,longitude]
数组,则“ 架构”选项卡将显示一个包含该字段中的点的地图。位置字段的数据类型为coordinates
。
您可以将过滤器应用于地图,以仅分析特定范围的点。定义位置过滤器:
当您绘制位置过滤器时,查询栏将更新,以显示应用于架构分析的$ geoWithin查询中使用的确切坐标 。
如果指定多个位置过滤器,该查询将成为带有多个运算符的$或查询$geoWithin
。
要移动或调整位置过滤器的大小,请单击 地图右侧的 编辑图标。您将进入过滤器编辑模式,如下所示:
修改过滤器后,点击保存。
如果对模式的分析超时,则可能是因为您正在分析的集合非常大,导致MongoDB在分析完成之前停止了操作。增加值
maxTimeMS
以允许操作时间完成。
增加值maxTimeMS
:
在查询栏中,展开选项。
增加值maxTimeMS
以容纳您的收藏。
maxTimeMS
默认值为5000毫秒(即5秒),但大型集合可能需要数十秒来进行分析。
一旦增加的价值maxTimeMS
,请单击分析重试模式分析。