MongoDB Explorer
Explore a MongoDB document or collection sample and infer its field schema and types.
你的 MongoDB 文档在浏览器本地被解析和分析;你粘贴的任何内容都不会离开你的设备或被上传到任何服务器。
需要从此样本生成 TypeScript 类型?试用 JSON 转 TypeScript。
关于 MongoDB Explorer
这款 mongodb 模式浏览器接受单个 MongoDB 文档或一个 JSON 文档数组,并为你推断底层的字段模式。从 Compass、mongosh 或应用日志中粘贴一个样本,它便会遍历每个文档,构建一个扁平的字段路径列表(包括嵌套对象和对象数组元素),为每个字段标注一个宽松的类 BSON 类型,如 int、double、string、bool、object、array 或 null,并显示样本中有多少文档包含该字段。它专为需要理解集合形状、发现可选或不一致字段、并快速记录模式的后端开发者、数据工程师和 QA 测试者而设计。一切都在你的浏览器本地运行,因此你粘贴的文档绝不会离开你的设备,也不会上传到任何服务器。
功能特性
- 接受单个文档或一个 JSON 文档数组
- 推断一个按字母顺序排序的扁平字段路径列表
- 为每个字段标注类 BSON 类型:int、double、string、bool、object、array 或 null
- 深入嵌套对象以及对象数组的第一个元素(path[].field)
- 统计有多少文档包含每个字段,以便你发现可选字段
- 当文档不一致时合并每个字段的多种类型(例如 int | null)
- 在模式顶部显示文档和字段计数摘要
- 随着你粘贴实时运行,并在浏览器中完全离线工作
如何使用 MongoDB Explorer
- 将一个 MongoDB 文档或一个 JSON 文档数组粘贴到输入框中。
- 在右侧阅读推断出的模式表,包含字段路径、类型和覆盖率。
- 查看每个字段旁的 present/total 计数,以找出可选或稀疏字段。
- 展开嵌套路径和数组字段,查看深层结构。
- 复制或下载规范化的 JSON 以分享该样本。
示例
输入
[
{ "_id": 1, "name": "Ada", "age": 36, "roles": ["admin"] },
{ "_id": 2, "name": "Linus", "active": true, "address": { "city": "Helsinki" } }
]
输出
_id int 2/2
active bool 1/2
address object 1/2
address.city string 1/2
age int 1/2
name string 2/2
roles array 1/2
两个文档被推断为字段路径、类型和每个字段的覆盖率。
常见错误与故障排除
- 输入因 JSON 解析错误而被拒绝。 — 确保样本是有效的 JSON:键和字符串使用双引号、没有多余的逗号、也没有 ObjectId() 或 ISODate() 等 mongosh 辅助函数。
- 你直接从 shell 粘贴了 ObjectId(...)、ISODate(...) 或 NumberLong(...)。 — 在粘贴前,将这些扩展 JSON 构造函数替换为纯 JSON 值(例如一个加引号的字符串),因为浏览器解析的是标准 JSON。
- 你收到一条要求提供文档或文档数组的消息。 — 请提供一个对象或一个对象数组。裸的标量数组或单个原始值没有可推断的字段。
- 一个对象数组只显示第一个元素的字段。 — 这是预期行为:对象数组的模式根据第一个元素(path[])推断。请重排样本,使一个有代表性的对象排在最前。
- 某个字段显示两种类型,如 int | double 或 string | null。 — 这意味着样本中的文档对该字段的类型不一致;它是信息提示,而非错误。
常见问题
- 什么是 MongoDB 模式浏览器?
- 它是一款浏览器内工具,接受一个 MongoDB 文档或一个 JSON 文档样本数组,并推断模式:每个字段路径、每个字段的类 BSON 类型,以及样本中有多少文档包含该字段。
- 它如何推断字段类型?
- 它检查每个值并赋予一个宽松的类 BSON 标签:整数变为 int,非整数变为 double,外加 string、bool、object、array 和 null。当文档不一致时,该字段会显示它见过的所有类型,并用竖线连接。
- 它能处理嵌套对象和数组吗?
- 可以。嵌套对象会生成点分路径,如 address.city,对象数组则通过其第一个元素以 path[].field 表示法进行探查。
- 每个字段旁的计数是什么意思?
- 它是该字段的覆盖率,以 present/total 显示,即你粘贴的样本中有多少文档包含该字段。低于总数的值表示这是一个可选或稀疏字段。
- 我可以粘贴来自 mongosh 或 Compass 的扩展 JSON 吗?
- 请粘贴标准 JSON。先将 ObjectId()、ISODate() 和 NumberLong() 等构造函数替换为纯值,否则 JSON 解析会失败。
- 使用这款 MongoDB 模式浏览器时我的数据安全吗?
- 是的。浏览器完全在你的浏览器中运行,因此你粘贴的文档绝不会离开你的设备,也不会上传到任何服务器。
相关工具
全部 ArrayKit 工具