导入/导出
「文档型数据库」提供完善的数据导入/导出功能,帮助您快速完成数据迁移、备份和分析等任务。本文档将详细介绍如何使用集合管理功能进行数据的导入和导出操作。
数据导入
「数据导入」功能支持批量导入数据,帮助您快速迁移现有数据或初始化测试数据。
操作步骤
进入集合管理:访问 云开发平台/文档型数据库/集合管理 ,选择目标集合
开始导入:点击「导入」按钮
选择文件:上传准备好的数据文件(支持 JSON 和 CSV 格式)
配置导入参数:
- 选择文件格式(JSON 或 CSV)
- 选择冲突处理模式(Insert 或 Upsert)
执行导入:确认配置后,点击「导入」开始数据导入

冲突处理模式
导入数据时,您需要选择合适的冲突处理模式来决定如何处理已存在的记录:
| 模式 | 处理方式 | 适用场景 | 使用注意 |
|---|---|---|---|
| Insert | 总是插入新记录 | • 全新数据导入 • 数据初始化 | 导入文件中不能包含与数据库中相同的 _id |
| Upsert | 存在则更新,不存在则插入 | • 数据更新 • 增量导入 • 数据同步 | 基于 _id 字段判断记录是否存在 |
模式选择建议
- 首次导入:推荐使用 Insert 模式,确保数据完整导入,避免意外覆盖
- 数据更新:推荐使用 Upsert 模式,支持增量更新,避免重复数据
- 定期同步:使用 Upsert 模式,实现数据的持续同步更新
支持的文件格式
JSON 格式
编码要求:UTF-8 编码
格式说明:采用 JSON Lines 格式,每行一个完整的 JSON 对象
示例文件:
{"_id": "user_001", "name": "张三", "age": 25, "email": "zhang@example.com", "role": "admin"}
{"_id": "user_002", "name": "李四", "age": 30, "email": "li@example.com", "role": "editor"}
{"_id": "user_003", "name": "王五", "age": 28, "email": "wang@example.com", "role": "viewer"}
格式特点:
- 每行代表一条独立的数据记录
- 支持嵌套对象和数组结构
- 完整保留数据类型信息
CSV 格式
编码要求:UTF-8 编码
格式说明:标准 CSV 格式,第一行为字段名(表头),后续行为数据记录
示例文件:
_id,name,age,email,role
user_001,张三,25,zhang@example.com,admin
user_002,李四,30,li@example.com,editor
user_003,王五,28,wang@example.com,viewer
格式特点:
- 结构简单,易于使用 Excel 等工具编辑
- 适合扁平化的表格数据
- 字段名和数据用逗号分隔
格式要求与限制
JSON 格式规范
| 规范项 | 具体要求 | 正确示例 | 错误示例 |
|---|---|---|---|
| 记录分隔 | 使用换行符 \n 分隔每条记录 | 每行一个 JSON 对象 | 多个对象写在同一行 |
| 字段命名 | 首尾不能是 .,不能包含连续的 .. | name、user.id、data.info | .name、name.、a..b |
| 键名唯一 | 同一对象内不能有重复的键名 | {"id": 1, "name": "张三"} | {"a": 1, "a": 2} |
| 时间格式 | 使用 MongoDB ISODate 格式 | {"date": {"$date": "2024-01-15T10:30:00.882Z"}} | {"date": "2024-01-15"} |
数据完整性要求
| 导入模式 | _id 字段要求 | 详细说明 |
|---|---|---|
| Insert 模式 | 不能重复 | • 导入文件内部的 _id 不能重复• 导入文件中的 _id 不能与数据库现有记录重复 |
| Upsert 模式 | 允许重复 | • 文件中的 _id 与数据库现有记录相同时,会更新该记录• 文件中的 _id 不存在时,会插入新记录 |
⚠️ 重要提示:
- 如果不指定
_id字段,系统会自动生成唯一的_id- 导入前建议先备份数据,避免误操作导致数据丢失
导入结果说明
导入完成后,系统会显示详细的导入统计信息:
- 成功导入记录数:已成功写入数据库的记录数量
- 失败记录数:导入失败的记录数量
- 失败原因:具体的错误信息(如格式错误、
_id重复等) - 跳过记录数:在 Insert 模式下因
_id重复而跳过的记录
数据导出
「数据导出」功能支持将集合数据导出为文件,便于数据备份、分析或迁移到其他系统。
操作步骤
进入集合管理:访问 云开发平台/文档型数据库/集合管理 ,选择要导出的集合
开始导出:点击「导出」按钮
配置导出参数:
- 选择导出格式(JSON 或 CSV)
- 设置字段范围(可选)
- 选择保存位置
执行导出:确认配置后,点击「导出」开始数据导出
下载文件:导出完成后,下载生成的文件到本地
导出格式配置
JSON 格式
适用场景:
- 数据完整备份
- 跨系统数据迁移
- 保留完整数据结构
格式特点:
- 完整保留数据类型和结构信息
- 支持嵌套对象和数组
- 导出文件可直接用于导入操作
字段配置:
- 不指定字段:导出集合的所有字段和数据(推荐用于备份)
- 指定字段:只导出指定的字段,减小文件体积
导出示例:
{"_id": "user_001", "name": "张三", "profile": {"age": 25, "city": "北京"}, "tags": ["vip", "active"]}
{"_id": "user_002", "name": "李四", "profile": {"age": 30, "city": "上海"}, "tags": ["normal"]}
CSV 格式
适用场景:
- 数据分析和统计
- Excel 导入处理
- 生成数据报表
格式特点:
- 表格结构,易于阅读
- 兼容 Excel、Numbers 等办公软件
- 数据会被扁平化处理
字段配置:
- 必须指定字段:CSV 格式要求明确指定需要导出的字段列表
- 嵌套字段访问:使用点表示法访问嵌套对象,如
profile.age、profile.city
字段配置示例:
_id, name, age, email
_id, name, profile.age, profile.city, createdAt, updatedAt
导出示例:
_id,name,age,email
user_001,张三,25,zhang@example.com
user_002,李四,30,li@example.com
导出格式对比
| 对比项 | JSON 格式 | CSV 格式 |
|---|---|---|
| 字段指定 | 可选(默认导出全部) | 必须指定 |
| 数据完整性 | 完整保留所有类型和结构 | 扁平化处理,丢失嵌套结构 |
| 文件体积 | 相对较大 | 相对较小 |
| 可读性 | 适合技术人员 | 适合业务人员 |
| 再导入 | 可直接导入 | 需要转换格式 |
| 适用工具 | 代码编辑器、数据库工具 | Excel、Numbers、数据分析工具 |
使用场景与最佳实践
| 使用场景 | 推荐格式 | 配置建议 | 说明 |
|---|---|---|---|
| 数据完整备份 | JSON | 不指定字段,导出全部数据 | 保留完整数据结构,便于恢复 |
| 跨系统迁移 | JSON | 不指定字段 | 确保数据迁移的完整性 |
| 数据分析 | CSV | 指定需要分析的字段 | 便于使用 Excel 等工具处理 |
| 生成报表 | CSV | 指定报表所需字段 | 快速生成业务报表 |
| 大数据导出 | JSON 或 CSV | 分批导出,每批 1-5 万条 | 避免单次导出数据量过大 |
| 嵌套数据导出 | JSON | 不指定字段 | CSV 无法完整保留嵌套结构 |
导出建议
- 定期备份:建议每周使用 JSON 格式导出完整数据作为备份
- 大数据集:数据量超过 10 万条时,建议分批导出
- 嵌套数据:包含复杂嵌套结构时,优先使用 JSON 格式
- 业务分析:需要使用 Excel 分析时,使用 CSV 格式并指定关键字段