MongoDB 工作台
MongoDB 工作台围绕数据库、Collection、文档、索引和 GridFS 组织,不把文档强制转换成关系型表。它提供表格视图和完整 JSON 视图,并保留 ObjectId、日期、长整数等 Extended JSON 类型。
连接与驱动
推荐使用标准 mongodb:// 或 mongodb+srv:// 连接字符串,并在 URL 中包含副本集、认证库、TLS 和其他参数。Atlas、Replica Set 和直连部署都使用同一个连接入口。
DBX 优先使用原生 MongoDB 路径。当服务端或认证协议需要旧驱动时,可以选择或自动回退到 mongodb-legacy Agent。旧驱动的管理和修改能力可能少于原生驱动。
数据库与 Collection
对象树可以:
- 列出数据库、Collection、索引和 GridFS Bucket
- 显示 Collection 文档数、大小和其他可获取统计
- 创建、重命名或删除 Collection(原生驱动且连接可写时)
- 删除数据库、单个索引或除
_id_外的可删除索引 - 从 Collection 打开文档浏览器或查询编辑器
删除和重命名会显示目标和请求预览,并受只读与生产保护约束。
文档浏览与分页
文档浏览器支持:
- 分页读取和估算总数
- 表格视图与完整文档视图
- 顶层和嵌套字段列,例如
address.city - 可搜索字段选择器、隐藏列和持久化列布局
- 快速过滤器以及多个字段条件
- 数据库侧排序和 Collection 查询
MongoDB 的总数可能使用估算值。数据持续写入时,翻页过程中的总数和最后一页可能变化。
过滤与命令
可以在文档浏览器中构建字段过滤,也可以在 MongoDB 查询标签中输入 shell 风格命令。日期类型的过滤值除 RFC 3339 外也接受 2025-04-01 19:46:03 或 2025-04-01,不带时区的文本按本地时区解析。编辑器会根据数据库、Collection、字段、查询运算符、更新运算符、聚合阶段和游标方法提供补全。
常见命令包括:
db.users.find({ status: "active" }).sort({ createdAt: -1 })db.orders.aggregate([
{ $match: { status: "paid" } },
{ $group: { _id: "$customerId", total: { $sum: "$amount" } } }
])use <database> 会切换当前 MongoDB 查询上下文。在 use 之后以及 db.getSiblingDB("…") 内部会补全数据库名。
表格编辑
表格视图把常见字段展开成列。支持:
- 编辑顶层或嵌套字段
- 新增和删除字段
- 新建、克隆和删除文档
- 复制选中文档为 JSON、Markdown 或 MongoDB Shell 语句
- 排除
_id后复制为新文档模板 - 在保存前查看待执行更新或删除目标
字段结构差异很大的 Collection 更适合使用完整文档视图,避免隐藏字段在表格列中被忽略。
查询结果编辑
当查询标签中只有一条不带投影的 find 或 findOne、且结果包含 _id 时,结果表格可以直接编辑:可以修改字段、选中并删除行,保存前查看将要执行的 updateOne 和 deleteOne 语句,删除后表格会自动重新加载。结果表格不支持新增行,请使用 insertOne 或文档浏览器。聚合、带投影的查询以及多条命令的脚本保持只读,因为它们的行无法对应到单个文档。
JSON 文档编辑
文档详情可以在字段树和完整 JSON 源码之间切换:
- 新建文档时粘贴完整 JSON
- 保存前校验 JSON 语法和根对象结构
- 格式化、折叠和复制嵌套对象/数组
- 保留
$oid、$date、$numberLong等 Extended JSON - 修改
_id时按新标识创建文档,并删除旧文档 - 完整 JSON 保存按整文档替换语义处理
索引
在对象树或 Collection 结构中可以查看索引名称、字段、唯一性和其他元数据。原生驱动支持时,可以删除单个索引、批量删除可删除索引,或从结构入口管理索引。
MongoDB 会保留 _id_ 索引;分片键等服务端规则也可能阻止删除其他索引。最终结果以服务端响应为准。
GridFS
GridFS 工作台用于管理 Bucket 和文件:
- 浏览、创建和删除 Bucket
- 上传、下载、预览和删除文件
- 查看文件名、大小、上传时间、Chunk 和 Metadata
- 按字段过滤和排序文件
- 导出文件列表或 Metadata
删除 Bucket 会删除其中的文件和 Chunk。生产环境执行前先确认 Bucket 名称和备份。
导入与导出
Collection 文档提供独立的 CSV/JSON/NDJSON 与 BSON 导入导出,和关系型 Table Import 不是同一条工作流。CSV 每一行生成一个文档,嵌套值保持嵌套,BSON 备份保留原生 BSON 类型。
导入数据
- 在集合上右键选择「导入数据」。
- 先明确选择格式,再选择
.csv、.json、.ndjson/.jsonl、.bson或.bson.gz文件。桌面端读取本地路径,Web 端上传到临时文件;更换文件不会覆盖已选择的格式。 - 对照预览检查数据。文本格式支持编码和类型设置,CSV 可逐列覆盖推断类型;BSON 导入不应用 CSV 文本转换。
- 确认以追加方式写入。重复
_id会停止导入,已提交的批次不会回滚。
CSV 按 MongoDB Compass:首行表头,嵌套字段用点号路径(address.city),数组索引(tags[0]、matrix[0][1]),ObjectId 写成 24 位十六进制,日期为 ISO-8601,空单元格为 null。导入采样前 1000 行推断列类型;_id 的十六进制会还原为 ObjectId,recognizeObjectIdHex 可将此规则扩展到其他列。JSON/NDJSON 使用 Extended JSON($oid、$date)。全部按字符串会把每个单元格当文本。
CSV 类型保真:Double 导出再导入会变为 Decimal128(十进制文本无损)。非 _id 的 ObjectId 字段会往返为 String,除非打开 recognizeObjectIdHex。小的 Int64 可能收窄为 Int32;ISO 日期格式的字符串会变为 DateTime。Extended JSON 类型($binary、$regularExpression、$timestamp、$minKey、$maxKey、$code)通过 JSON 文本单元格往返。空数组 [] 和空对象 {} 往返正确。
集合导入限制:只支持追加(无清空或 upsert),CSV 导出从前 10000 个文档发现字段(之后的字段会被静默丢弃;变化 schema 请改用 NDJSON 或 BSON),无 JSON 数组导出格式,不支持 Excel/GridFS 导入,失败批次不会自动重试。集合级 BSON 导入只恢复文档,不恢复配套元数据和索引。
导出数据
- 在集合上右键选择「导出数据」,再选 CSV、NDJSON、BSON 或 Gzip BSON,会像表导出一样直接打开保存文件对话框。
- CSV 嵌套对象写为点号列(
address.city),数组写为索引列(tags[0]、tags[1])。NDJSON 每行一个规范 Extended JSON 文档。 - 字段数超过 256 的 Collection 请改用 NDJSON 或 BSON。
数据库备份与恢复
在数据库节点右键选择「备份数据库」或「恢复数据库」。数据库备份包含选中集合、集合选项、索引和视图。原生驱动和 mongodb-legacy Agent 均支持;Agent 路径需要较新的 Agent 版本(支持 find 游标),以保证 BSON 类型在传输中不丢失。
- 桌面端支持官方目录布局与 MongoDB archive 格式,均可使用 gzip。Web 端导出 archive 文件,恢复时支持 archive 或上传目录。
- 目录备份包含
<数据库>/<集合>.bson和.metadata.json,或对应的.gz文件。MongoDB archive 是独立的流式格式,不是 ZIP 或 tar。 - 格式与 gzip 选项需明确选择。目录恢复的「读取备份」只读取清单和元数据;确认源库、目标库和集合后,才上传选中的数据文件。
- 恢复按单遍流式读取和写入进行。可选的
objcheck默认关闭,开启后在同一遍读取中逐文档校验;BSON 边界、gzip 完整性和 archive 校验和检查始终保留。 - 默认追加写入。「恢复前删除选中的目标同名集合」只删除并重建这些集合。已有
_id可能导致E11000;失败或取消不会回滚此前的写入。 - Web 上传复用服务端
DBX_MAX_UPLOAD_MB配置。桌面端直接读取本地文件,无需 HTTP 上传。
上述格式可与官方 mongodump/mongorestore 对支持的集合双向互通。本流程不提供 oplog 回放、时间点一致性保证、UUID 保留,也不处理内部数据库、时间序列集合和加密集合;这些场景请使用官方工具。
如果只需要当前可见选择,仍可从表格复制当前文档、选中文档或字段值为普通 JSON 或 Extended JSON。
安全与兼容边界
- 只读连接会阻止文档、字段、索引、Collection、数据库和 GridFS 修改
- 生产环境保护会在可识别写入前要求确认
- MCP“数据读写”只允许范围明确的 MongoDB 修改;不透明或近似全量过滤按高风险处理
- 旧版 Agent 可能不支持 Collection/索引管理等原生能力
- Atlas 权限、认证库、TLS 和 IP allowlist 都由 MongoDB 服务端决定
- 分页总数可能为估算值,不能作为强一致统计