# MongoDB 工作台

> 浏览、筛选、编辑和复制 MongoDB 文档，并管理集合、索引和 GridFS。

Source: https://dbxio.com/cn/docs/mongodb

Language: zh-CN

Relative links resolve against https://dbxio.com/cn/docs/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、字段、查询运算符、更新运算符、聚合阶段和游标方法提供补全。

常见命令包括：

```javascript
db.users.find({ status: "active" }).sort({ createdAt: -1 })
```

```javascript
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 保存按整文档替换语义处理

整文档替换会写回完整对象。编辑前确认当前 JSON 包含需要保留的所有字段，尤其是并发修改频繁的 Collection。

## 索引

在对象树或 Collection 结构中可以查看索引名称、字段、唯一性和其他元数据。原生驱动支持时，可以删除单个索引、批量删除可删除索引，或从结构入口管理索引。

MongoDB 会保留 `_id_` 索引；分片键等服务端规则也可能阻止删除其他索引。最终结果以服务端响应为准。

## GridFS

GridFS 工作台用于管理 Bucket 和文件：

* 浏览、创建和删除 Bucket
* 上传、下载、预览和删除文件
* 查看文件名、大小、上传时间、Chunk 和 Metadata
* 按字段过滤和排序文件
* 导出文件列表或 Metadata

删除 Bucket 会删除其中的文件和 Chunk。生产环境执行前先确认 Bucket 名称和备份。

## 导入与导出

Collection 文档提供独立的 CSV/JSON/NDJSON 与 BSON 导入导出，和关系型 Table Import 不是同一条工作流。CSV 每一行生成一个文档，嵌套值保持嵌套，BSON 备份保留原生 BSON 类型。

### 导入数据

1. 在集合上右键选择「导入数据」。
2. 先明确选择格式，再选择 `.csv`、`.json`、`.ndjson`/`.jsonl`、`.bson` 或 `.bson.gz` 文件。桌面端读取本地路径，Web 端上传到临时文件；更换文件不会覆盖已选择的格式。
3. 对照预览检查数据。文本格式支持编码和类型设置，CSV 可逐列覆盖推断类型；BSON 导入不应用 CSV 文本转换。
4. 确认以追加方式写入。重复 `_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 服务端决定
* 分页总数可能为估算值，不能作为强一致统计

### [生产写入保护](/cn/docs/production-safety)

了解 MongoDB 过滤范围、只读连接和 MCP 策略。

### [连接与驱动](/cn/docs/driver-management)

管理原生与 legacy Agent，并排查驱动启动问题。

### [专项工作台](/cn/docs/specialized-workspaces)

查看 Redis、搜索、向量、HBase、消息队列和配置中心。

