导入和导出数据
您可以使用 MongoDB Compass 将数据导入 集合或从集合导出数据。Compass 支持 JSON 和 CSV 文件的导入和导出。要将数据导入或导出集合,请从数据库标签页中选择集合或单击左侧导航栏中的集合,导航至详细集合视图。
注意
Compass 不是备份数据的工具。有关备份解决方案的信息,请参阅自管理部署的备份方法。
将数据导入集合
Mongo DB Compass 可以将数据从 JSON 或 CSV 文件导入到集合中。
限制
MongoDB Compass Readonly Edition 不允许将数据导入集合。
如果连接到数据湖,则无法导入数据。
设置数据格式
在将数据导入 MongoDB Compass 之前,您必须首先确保数据格式正确。
从 JSON 文件导入数据时,您可以将数据格式设置为:
通过换行符分隔的文档,或
数组中以逗号分隔的文档
例子
以下通过换行符分隔的 .json
文件的格式正确:
{ "type": "home", "number": "212-555-1234" } { "type": "cell", "number": "646-555-4567" } { "type": "office", "number": "202-555-0182"}
以下通过逗号分隔的 .json
数组文件的格式也正确:
[{ "type": "home", "number": "212-555-1234" }, { "type": "cell", "number": "646-555-4567" }, { "type": "office", "number": "202-555-0182"}]
Compass 忽略 JSON 数组中的换行符。
由于初始 JSON 没有指定 ObjectID,Compass 会在导入时自动为这些对象生成 ObjectID。
从CSV文件导入数据时,文件的第一行必须是以逗号分隔的文档字段名称列表。文件中的后续行必须是以逗号分隔的字段值,且顺序与第一行中的字段顺序相对应。
例子
以下.csv
文件导入三个文档:
name,age,fav_color,pet Jeff,25,green,Bongo Alice,20,purple,Hazel Tim,32,red,Lassie
由于初始 CSV 文件没有指定 ObjectID,Compass 会在导入时自动为这些对象生成 ObjectID。
步骤
要将格式化数据导入集合:
连接到包含要导入数据的 集合 的部署。
要了解如何连接部署,请参阅连接 MongoDB。
导航到目标集合。
可以从 Collection(集合)标签页选择该集合,或者从左手窗格中点击该集合。
配置导入选项。
在 Options(选项)下,配置适合您的使用案例的导入选项。
如果要导入 CSV 文件,您可以选择数据的分隔方式。
对于 JSON 和 CSV 文件导入,您可以切换 Ignore empty strings(忽略空字符串)和 Stop on errors(在出错时停止):
如果选中 Ignore empty strings(忽略空字符串),则会从导入的文档中删除具有空字符串值的字段。文档在导入时仍包含所有其他字段。
如果选中, Stop on errors 将阻止在发生错误时导入任何数据。如果未选中,则会插入数据,直至遇到错误并且成功的插入不会回滚。在这两种情况下,遇到错误后,导入操作都不会继续。
进度条显示导入的状态。如果在导入过程中发生错误,进度条将变为红色,并在对话框中显示错误消息。要查看所有错误,请单击 View Log。
成功导入后,对话框关闭, Compass 将显示包含新导入文档的集合页面。
从集合导出数据
MongoDB Compass 可将集合中的数据导出为 JSON 或 CSV 文件。如果您为集合指定筛选器或聚合管道,则 Compass 仅导出与指定的查询或管道结果匹配的文档。
行为
尽可能避免导出为 CSV 文件。CSV 文件可能会丢失类型信息,不适合用于备份数据。
您可以使用查询筛选器,仅导出与筛选器匹配的文档。
你可以使用查询栏中的“项目”字段来指定要返回或导出的字段。
步骤
要将整个集合导出到文件:
连接到包含您要从中导出数据的集合的部署。
要了解如何连接部署,请参阅连接 MongoDB。
导航到所需的集合。
可以从 Collection(集合)标签页选择该集合,或者从左手窗格中点击该集合。
选择文件类型。
您可以选择 JSON 或 CSV。如果您选择 JSON,则可以展开 Advanced JSON Format 下拉列表并从以下扩展 JSON 格式中进行选择:
JSON Format | 说明 |
---|---|
默认扩展 JSON | 一种字符串格式,可避免任何 BSON 类型信息丢失。
这是默认的 Compass 设置。 |
宽松扩展 JSON | 一种字符串格式,强调可读性和互操作性,但牺牲了类型保护。也就是说,从宽松格式转换为 BSON 可能会丢失类型信息。 警告:为了数据完整性,不建议使用此格式。 |
规范扩展 JSON | 一种凸显类型保存的字符串格式,但牺牲了可读性和互操作性。
也就是说,从规范模式到 BSON 的转换
通常会保留类型信息,某些特定情况下除外。
|
进度条显示导出的状态。如果在导出过程中发生错误, 进度条将变为红色,并在对话框中显示错误消息。 成功导出后,对话框将关闭。
要从集合中导出文档的子集,请执行以下操作:
连接到包含您要从中导出数据的集合的部署。
要了解如何连接部署,请参阅连接 MongoDB。
导航到所需的集合。
可以从 Collection(集合)标签页选择该集合,或者从左手窗格中点击该集合。
选择要包含在导出文件中的文档字段。
您可以选择导出 All Fields 或 Select fields in table。在查询栏中,您还可以使用 Project 字段指定要返回或导出的字段。
只有选中的字段才会包含在导出的文件。
如果未自动检测到要包含的字段,您可以添加要包含在 Add Field 按钮中的文档字段。
注意
Compass 会对您的集合进行采样以预填充字段列表。可能无法自动检测仅出现在一小部分文档中的字段。
有关采样的详情,请参阅采样。
选择适合的文件类型。
在 Export File Type(导出文件类型)下,选择 JSON 或 CSV。如果您选择 JSON,则可以展开 Advanced JSON Format 下拉列表,并从以下扩展 JSON 格式中选择:
JSON Format | 说明 |
---|---|
默认扩展 JSON | 一种字符串格式,可避免任何 BSON 类型信息丢失。
这是默认的 Compass 设置。 |
宽松扩展 JSON | 一种字符串格式,强调可读性和互操作性,但牺牲了类型保护。也就是说,从宽松格式转换为 BSON 可能会丢失类型信息。 警告:为了数据完整性,不建议使用此格式。 |
规范扩展 JSON | 一种凸显类型保存的字符串格式,但牺牲了可读性和互操作性。
也就是说,从规范模式到 BSON 的转换
通常会保留类型信息,某些特定情况下除外。
|
进度条显示导出的状态。如果在导出过程中发生错误, 进度条将变为红色,并在对话框中显示错误消息。 成功导出后,对话框将关闭。
要从聚合管道导出结果:
连接到包含您要从中导出数据的集合的部署。
要了解如何连接部署,请参阅连接 MongoDB。
创建聚合管道并运行以获取结果。
要了解如何创建聚合管道,请参阅创建聚合管道。
选择适合的文件类型。
在 Export File Type(导出文件类型)下,选择 JSON 或 CSV。如果您选择 JSON,则可以展开 Advanced JSON Format 下拉列表,并从以下扩展 JSON 格式中选择:
JSON Format | 说明 | 文档样本 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
默认扩展 JSON | 一种字符串格式,可避免任何 BSON 类型信息丢失。
这是默认的 Compass 设置。 |
| |||||||||||
宽松扩展 JSON | 一种字符串格式,强调可读性和互操作性,但牺牲了类型保护。也就是说,从宽松格式转换为 BSON 可能会丢失类型信息。 警告:为了数据完整性,不建议使用此格式。 |
| |||||||||||
规范扩展 JSON | 一种凸显类型保存的字符串格式,但牺牲了可读性和互操作性。
也就是说,从规范模式到 BSON 的转换
通常会保留类型信息,某些特定情况下除外。
|
|
从命令行导入和导出数据
要从命令行导入和导出数据,可以使用 MongoDB 的数据库工具。请参阅 mongoimport 和 mongoexport。