文档菜单
文档首页
/
MongoDB Compass
/

分析您的数据模式

本页内容

  • 查询栏
  • 字段说明
  • 查询构建器
  • 分析位置数据
  • 故障排除

模式选项卡提供了特定集合中字段的数据类型和形状的概述。数据库和集合在左侧导航中可见。

概述基于对集合中的文档进行采样。模式概述可能包含有关字段内容的额外数据,例如日期和整数的最大值和最小值,特定值的频率,以及数据的基数。

MongoDB有一个灵活的模式模型,这意味着某些字段可能包含从一份文档到下一份文档不同类型的数据。例如,名为address的字段可能在某些文档中包含字符串和整数,在其他文档中包含对象,或者包含所有三种类型的组合。

对于异构字段,模式选项卡会显示字段中包含的各种数据类型及其百分比。

示例

模式选项卡在顶部显示了test.restaurants集合的大小信息,包括集合中的文档总数,平均文档大小,以及集合占用的总磁盘空间。

以下字段显示详细信息

  • _id字段是一个ObjectId。每个ObjectId包含一个时间戳,因此Compass显示采样文档的创建时间范围。

  • address字段包含四个嵌套字段。您可以展开字段面板以查看每个嵌套字段的分析。

  • borough字段包含一个字符串,表示餐厅所在的区。其基数足够低,Compass可以提供一个按字段内容分级的条形图,最频繁出现的字符串在左侧。

  • grades字段包含字符串数组。分析显示数组的最大值、最小值和平均值。

Example of a collection's schema
点击放大

架构选项卡中,使用查询栏可以创建查询过滤器以限制结果集。点击选项按钮以指定查询选项,例如要显示的特定字段和返回的结果数量。

注意

对于超过1000个文档的查询结果集,Compass会显示结果子集。否则,Compass会显示整个结果集。

有关采样的详细信息,请参阅采样。

Query bar schema view
点击放大

提示

架构选项卡中,您还可以使用查询构建器将查询输入到查询栏中。

对于每个字段,Compass都会显示该字段包含的数据类型或数据类型的总结信息以及值范围。根据数据类型和基数级别,Compass会显示直方图、分级条形图、地理地图和样本数据,以提供每个字段中包含的数据的形状和范围感。

以下是一个名为 last_login 的字段的数据类型摘要示例,该字段包含类型为 date 的数据。

Example of a field with a single data type

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

Example of percentage breakdown for data types

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

Example of sparcely applied data type

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

Example of string data types

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

Example of few string data types

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

Example of string data types as a histogram

注意

将鼠标移至每个条形上,将显示一个工具提示,显示字符串的值。

数字在表示上与字符串相似。唯一的数字以以下方式显示

Example of number data type

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

Example of duplicate number data types
点击放大

表示日期(以及包含ObjectID数据类型(包括时间戳)的字段)的字段显示在多个条形图中。顶部两行中的两个图表表示时间戳值的一周中的天数和一天中的时间。

底部单图表显示了第一个和最后一个时间戳值,垂直线表示时间戳在第一个到最后一个范围内的分布。

Example of Date data types

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

Example of fields with embedded documents or arrays

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

Expanding the embedded documents

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

Example of GeoJSON data types
点击放大

注意

指南针独立版中不可用第三方地图服务。

如果字段包含混合类型,您可以通过单击类型字段来查看每种类型的不同图表。在下面的示例中,年龄字段显示了字符串值

Example of a field with mixed types

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

Example that shows numeric data for number type

模式选项卡中,您可以直接在查询栏中手动输入过滤器,或者使用Compass查询构建器生成过滤器。查询构建器允许您从模式中的一个或多个字段中选择数据元素,构建与所选元素匹配的查询。

提示

您可以通过点击查询构建器来构建初始查询过滤器,然后根据您的确切需求手动编辑生成的过滤器。

以下步骤描述了使用查询栏构建复杂查询的步骤。

1

模式视图中,您可以通过点击图表值来构建查询。例如,以下图片展示了通过点击Manhattan值构建的查询过滤器。

Example of a created filter
点击放大
2

要选择多个字段值,请点击并拖动光标选择多个值,或按住shift键同时点击所需的值。

Exmaple of selecting multimple values for a field
点击放大
3

例如,以下图像显示了通过在cuisine字段中选择值构建的复合查询。

Example of a compound query
点击放大
4

要取消选择之前选中的值,请按住shift键同时点击该值

Example of removing a value from a filter
点击放大
5

要运行查询,请点击分析。点击重置以清除查询。

模式标签页中,您可以使用交互式地图来过滤和分析位置数据。如果您的字段包含GeoJSON数据[经度,纬度]数组,则模式标签页会显示包含字段中点的地图。位置字段的类型是坐标

Image showing example field with location data
点击放大

您可以对地图应用过滤器,以仅分析特定的点范围。要定义位置过滤器

  1. 点击地图右上角的圆形按钮。

  2. 在地图上点击并拖动以绘制包含您想要分析的地图区域的圆圈。

  3. 根据需要重复此过程,以将地图的额外区域包含在方案分析中。

Image showing map with filter circles drawn
点击放大

随着您绘制位置过滤器,查询栏更新以显示在方案分析中应用的$geoWithin查询中使用的精确坐标。

如果您指定多个位置过滤器,则查询成为具有多个$geoWithin操作符的$or查询。

要移动或调整位置过滤器的尺寸,请点击地图右侧的 。您将进入过滤器编辑模式,如下所示

Image showing map filter editing
点击放大
移动过滤器
点击并拖动圆圈中心的方形。
调整过滤器尺寸
点击并拖动圆圈边缘的方形。

修改完过滤器后,点击 保存

从地图中删除位置过滤器

  1. 点击地图右侧的

  2. 点击以下任一选项

    • 要删除的过滤器。

    • 全部清除 以删除所有位置过滤器。

  3. 点击 保存

如果您的模式分析超时,可能是因为您正在分析的集合非常大,导致MongoDB在分析完成前停止了操作。将MAX TIME MS的值增加,以便允许操作完成。

增加MAX TIME MS的值

  1. 在查询栏中,展开选项

    The Options button is on the right side of the query bar,
next to the Analyze button.
  2. MAX TIME MS的值增加以适应您的集合。MAX TIME MS默认为60000毫秒,即60秒,但大型集合可能需要数十秒才能分析。

增加MAX TIME MS的值后,通过点击分析来重试您的模式分析。

返回

Atlas 向量搜索索引