导入和导出数据
您可以使用MongoDB Compass导入和导出数据到和从集合. Compass支持导入和导出 JSON 和 CSV 文件。要导入或导出集合中的数据,请通过选择数据库选项卡中的集合或点击左侧导航中的集合来导航到详细集合视图。
注意
Compass 不是一个备份数据的工具。有关备份解决方案的信息,请参阅自托管部署的备份方法.
将数据导入集合
MongoDB Compass可以从JSON或CSV文件中导入数据到集合中。
限制条件
在以下情况下不允许将数据导入集合:MongoDB Compass只读版.
如果您连接到数据湖。则无法导入数据
格式化您的数据
在您将数据导入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数组中的行断符。
Compass在导入时自动为这些对象生成ObjectIDs,因为初始JSON中没有指定ObjectIDs。
从CSV文件导入数据时,文件的第一行必须是逗号分隔的文档字段名列表。文件中的后续行必须是按顺序与第一行中字段顺序相对应的逗号分隔的字段值。
示例
以下.csv
文件导入三个文档
name,age,fav_color,pet Jeff,25,green,Bongo Alice,20,purple,Hazel Tim,32,red,Lassie
MongoDB Compass在导入时自动为这些对象生成ObjectIDs,因为初始CSV文件中没有指定ObjectIDs。
步骤
要将格式化的数据导入到集合中
进度条显示导入状态。如果在导入过程中发生错误,进度条将变为红色,并在对话框中显示错误消息。要查看所有错误,请点击查看日志。
导入成功后,对话框将关闭,Compass将显示包含新导入文档的集合页面。
从集合导出数据
MongoDB Compass可以以JSON或CSV文件的形式从集合中导出数据。如果您为您的集合指定了过滤器或聚合管道,Compass则仅导出与指定查询或管道结果匹配的文档。
行为
尽可能避免将数据导出为 CSV 文件。因为 CSV 文件可能会丢失类型信息,并且不适合用作数据的备份。
您可以使用查询过滤器来导出与过滤器匹配的文档。
您可以在查询栏中使用 项目 字段来指定返回或导出的字段。
步骤
要将整个集合导出到文件
进度条显示导出状态。如果在导出过程中发生错误,进度条将变为红色,并在对话框中显示错误消息。导出成功后,对话框关闭。
要从集合中导出文档的子集
连接到包含您希望从中导出数据的集合的部署。
要了解如何连接到部署,请参阅 连接到 MongoDB。
导航到您希望访问的集合。
您可以从 集合 选项卡中选择集合,或在左侧面板中单击集合。
选择要包含在导出文件中的文档字段。
您可以选择导出 所有字段 或 选择表格中的字段。在查询栏中,您还可以使用 项目 字段来指定要返回或导出的字段。
只有勾选的字段会被包含在导出的文件中。
如果想要包含的字段没有自动检测到,您可以通过 添加字段 按钮将其添加。
注意
Compass对您的收藏夹进行采样以预填充字段列表。仅在小部分文档中出现的字段可能不会自动检测到。
有关采样的详细信息,请参阅 采样。
进度条显示导出状态。如果在导出过程中发生错误,进度条将变为红色,并在对话框中显示错误消息。导出成功后,对话框关闭。
要从聚合管道导出结果
连接到包含您希望从中导出数据的集合的部署。
要了解如何连接到部署,请参阅 连接到 MongoDB。
创建一个聚合管道并运行以获取结果。
要了解如何创建聚合管道,请参阅创建聚合管道。
选择合适的文件类型。
在 导出文件类型 下,选择 JSON 或 CSV。如果您选择 JSON,可以展开 高级JSON格式 下拉菜单,并从以下扩展JSON格式中选择
JSON格式 | 描述 | 样本文档 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
默认扩展JSON | 一种避免BSON类型信息丢失的字符串格式。这是默认设置。Compass。 |
| |||||||||||
宽松扩展JSON | 一种强调可读性和互操作性的字符串格式,但牺牲了类型保留。也就是说,从宽松格式转换为BSON可能会丢失类型信息。 警告:此格式不建议用于数据完整性。 |
| |||||||||||
规范扩展JSON | 一种在牺牲可读性和互操作性的情况下强调类型保留的字符串格式。也就是说,从规范格式转换为BSON格式通常将保留类型信息,但在某些特定情况下除外。 |
|
从命令行导入和导出数据
要从命令行导入和导出数据,您可以使用 MongoDB 的 数据库工具。请参阅 mongoimport 和 mongoexport。