Docs 菜单
Docs 主页
/
MongoDB Compass
/

分析数据模式

在此页面上

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

Schema 标签页概述了特定集合中字段的数据类型和形状。数据库和集合会显示在左侧导航栏中。

该概述基于对集合中文档的采样。模式概述可能包括有关字段内容的其他数据,例如日期和整数的最小值和最大值、特定值出现的频率以及数据关联基数。

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

对于异构字段,Schema 标签页将显示字段所包含的各种数据类型的细分,并显示每种数据类型的百分比。

例子

Schema(架构)选项卡在顶部显示有关 test.restaurants 集合的大小信息,包括该集合中的文档总数、平均文档大小以及该集合占用的总磁盘空间。

将显示以下字段及其详细信息:

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

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

  • borough 字段包含一个字符串,表示餐馆所在的行政区。关联基数足够低,Compass 可以提供字段内容的分级条,最频繁出现的字符串位于左侧。

  • categories 字段包含字符串数组。分析显示最小、最大和平均数组长度。

集合模式示例
点击放大

使用 Schema(模式)标签页中的查询栏,您可以创建查询筛选器来限制结果集。单击 Options(选项)按钮可指定查询选项,例如要显示的特定字段以及要返回的结果数。

注意

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

有关采样的详情,请参阅采样。

查询栏模式视图
点击放大

提示

Schema 选项卡中,还可以使用查询生成器在查询栏中输入查询。

对于每个字段,Compass 都会显示有关字段包含的一个或多个数据类型和值范围的摘要信息。根据数据类型和关联基数级别,Compass 会显示直方图、分级条形图、地理地图和样本数据,以让人们了解每个字段中包含的数据的形状和范围。

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

单一数据类型字段示例

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

数据类型百分比细分示例

如果在集合包含的文档中,并非所有字段都包含值,则缺失值显示为 undefined。在以下示例中,字段 age 在 40% 的抽样文档中没有记录值。

应用稀少的数据类型示例

字符串可通过三种不同的方式出现。如果字段中存在完全唯一的字符串,Compass 将显示从指定字段中随机选择的字符串值。单击圆形刷新图标可查看从字段中随机选择的一组新值。

字符串数据类型示例

如果仅有几个不同的字符串值,Compass 则会在单个分级栏中显示这些字符串,而该分级栏还会显示这些字符串值在所有值中的占比。

几种字符串数据类型的示例

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

作为直方图的字符串数据类型的示例

注意

将光标移到每个栏上会显示一则工具提示,其中显示了该字符串的值。

数值的表示方式类似于字符串。 唯一数值按以下方式显示:

数字数据类型示例

重复数值显示在指示其频率的直方图中:

重复数字数据类型示例
点击放大

表示日期的字段(以及包含 ObjectId 数据类型的字段,其中包括时间戳)显示在多个条形图中。顶行的两个图表分别代表时间戳值的星期和时间。

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

日期数据类型的示例

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

包含嵌入式文档或数组的字段示例

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

展开嵌入式文档

包含 GeoJSON 数据或 [longitude,latitude] 数组的字段将与交互式地图一起显示。有关在 Compass 中与位置数据交互的更多信息,请参阅分析位置数据

GeoJSON 数据类型示例
点击放大

注意

Compass Isolated Edition 中不提供第三方映射服务。

如果某一字段采用混合类型,则可通过单击 type 字段来查看每种类型的不同图表。在以下示例中,age 字段会显示采用字符串形式的值:

具有混合类型的字段示例

单击 number 类型会使图表显示其数值数据:

显示数字类型的数值数据的示例

Schema 标签页,您可以在查询栏中手动键入筛选器或使用 Compass 查询构建器来生成筛选器。查询构建器允许您从模式中的一个或多个字段内选择数据元素,并构造与所选元素匹配的查询。

提示

你可以通过使用可点击的查询构建器来撰写初始查询筛选器,然后根据你的确切要求手动编辑生成的筛选器。

以下过程介绍使用查询栏创建复杂查询的相关步骤。

1

Schema 视图中,可以单击图表值以生成查询。例如,下图显示了通过单击 departureAirportFsCode 字段的 EWR 值构建的查询过滤器。

创建的过滤器示例
2

要为字段选择多个值,请单击并将光标拖动到所选值上,或按住 Shift 键并单击所需的值。

为字段选择多个值的示例
3

例如,下图显示通过选择 flightId 字段中的值所构建的复合查询。

复合查询示例
4

要取消选择先前选定的值,请按 shift 并单击选定的值:

从筛选器中删除值的示例
5

要运行查询,请单击 Analyze(分析)。单击 Reset(重置)清除查询。

Schema 标签页中,您可以使用交互式地图来过滤和分析位置数据。如果字段包含 GeoJSON 数据[longitude,latitude] 数组,则 Schema 标签页将显示地图,其中包含字段中的点。位置字段的数据类型为 coordinates

显示包含位置数据的示例字段的图片
点击放大

您可以对映射应用过滤器,以便仅分析特定范围的点。要定义位置过滤器,请执行以下操作:

  1. 单击地图右上方的 Circle(圆圈)按钮。

  2. 在地图上单击并拖动以绘制一个圆圈,其中包含要分析的地图区域。

  3. 根据需要重复此流程,以在模式分析中包括地图的其他区域。

显示绘制有筛选器圆形的地图的图像
点击放大

当您绘制位置筛选器时,查询栏会更新,以显示应用于模式分析的$geoWithin查询中使用的确切坐标。

如果指定多个位置过滤器,查询就会变为带有多个 $geoWithin 操作符的 $or 查询。

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

显示地图筛选器编辑的图像
点击放大
移动筛选器
单击并拖动圆圈边缘的正方形。
要调整筛选器大小
单击并拖动圆圈边缘的正方形。

修改筛选器后,单击 Save

要从地图中删除位置筛选器,请执行以下操作:

  1. 单击地图右侧的

  2. 点击:

    • 用于删除该筛选器的位置筛选器。

    • Clear All 以删除所有位置过滤器。

  3. 单击 Save(连接)。

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

要增加 MAX TIME MS 的值:

  1. 在查询栏中,展开 Options(选项)。

    选项按钮位于查询栏右侧,紧挨着分析按钮。
  2. 增加 MAX TIME MS 的值以适应您的集合。MAX TIME MS 默认为 60000 毫秒或 60 秒,但分析大型集合可能需要数十秒。

增加 MAX TIME MS 的值后,请单击 Analyze(分析)重试模式分析。

后退

Atlas Vector Search 索引