Docs 菜单
Docs 主页
/
MongoDB Compass

导入和导出数据

在此页面上

  • 将数据导入集合
  • 从集合导出数据
  • 从命令行导入和导出数据

您可以使用 MongoDB Compass 将数据导入 集合或从集合导出数据。Compass 支持 JSONCSV 文件的导入和导出。要将数据导入或导出集合,请从数据库标签页中选择集合或单击左侧导航栏中的集合,导航至详细集合视图。

注意

Compass 不是备份数据的工具。有关备份解决方案的信息,请参阅自管理部署的备份方法。

Mongo DB Compass 可以将数据从 JSONCSV 文件导入到集合中。

  • 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

要将格式化数据导入集合:

1

要了解如何连接部署,请参阅连接 MongoDB

2

可以从 Collection(集合)标签页选择该集合,或者从左手窗格中点击该集合。

3
4

选择要导入的 JSON 或 CSV 文件,然后单击 Select

如果要导入 CSV 文件,则可以在 Specify Fields and Types(指定字段和类型)下指定要导入的字段以及这些字段的类型。

选择要从 CSV 文件导入的字段
点击放大

要从要导入的 CSV 文件中排除某个字段,请取消选中此字段名旁边的复选框。 要选择字段的类型, 请使用此字段名下面的下拉菜单。

5

Options(选项)下,配置适合您的使用案例的导入选项。

如果要导入 CSV 文件,您可以选择数据的分隔方式。

对于 JSON 和 CSV 文件导入,您可以切换 Ignore empty strings(忽略空字符串)和 Stop on errors(在出错时停止):

  • 如果选中 Ignore empty strings(忽略空字符串),则会从导入的文档中删除具有空字符串值的字段。文档在导入时仍包含所有其他字段。

  • 如果选中, Stop on errors 将阻止在发生错误时导入任何数据。如果未选中,则会插入数据,直至遇到错误并且成功的插入不会回滚。在这两种情况下,遇到错误后,导入操作都不会继续。

6

进度条显示导入的状态。如果在导入过程中发生错误,进度条将变为红色,并在对话框中显示错误消息。要查看所有错误,请单击 View Log

成功导入后,对话框关闭, Compass 将显示包含新导入文档的集合页面。

MongoDB Compass 可将集合中的数据导出为 JSONCSV 文件。如果您为集合指定筛选器聚合管道,则 Compass 仅导出与指定的查询或管道结果匹配的文档。

  • 尽可能避免导出为 CSV 文件。CSV 文件可能会丢失类型信息,不适合用于备份数据。

  • 您可以使用查询筛选器,仅导出与筛选器匹配的文档。

  • 你可以使用查询栏中的“项目”字段来指定要返回或导出的字段。

要将整个集合导出到文件:

1

要了解如何连接部署,请参阅连接 MongoDB

2

可以从 Collection(集合)标签页选择该集合,或者从左手窗格中点击该集合。

3
4

您可以选择 JSONCSV。如果您选择 JSON,则可以展开 Advanced JSON Format 下拉列表并从以下扩展 JSON 格式中进行选择:

JSON Format
说明
默认扩展 JSON
一种字符串格式,可避免任何 BSON 类型信息丢失。 这是默认的 Compass 设置。
宽松扩展 JSON

一种字符串格式,强调可读性和互操作性,但牺牲了类型保护。也就是说,从宽松格式转换为 BSON 可能会丢失类型信息。

警告:为了数据完整性,不建议使用此格式。

规范扩展 JSON
一种凸显类型保存的字符串格式,但牺牲了可读性和互操作性。 也就是说,从规范模式到 BSON 的转换 通常会保留类型信息,某些特定情况下除外。
5

选择导出文件的位置,然后单击 Select

进度条显示导出的状态。如果在导出过程中发生错误, 进度条将变为红色,并在对话框中显示错误消息。 成功导出后,对话框将关闭。

要从集合中导出文档的子集,请执行以下操作:

1

要了解如何连接部署,请参阅连接 MongoDB

2

可以从 Collection(集合)标签页选择该集合,或者从左手窗格中点击该集合。

3

查询栏中指定过滤器,以仅导出与过滤器匹配的文档。

4

导出对话框的顶部显示在查询栏中输入的查询。

5

您可以选择导出 All FieldsSelect fields in table。在查询栏中,您还可以使用 Project 字段指定要返回或导出的字段。

只有选中的字段才会包含在导出的文件。

如果未自动检测到要包含的字段,您可以添加要包含在 Add Field 按钮中的文档字段。

注意

Compass 会对您的集合进行采样以预填充字段列表。可能无法自动检测仅出现在一小部分文档中的字段。

有关采样的详情,请参阅采样。

6

Export File Type(导出文件类型)下,选择 JSONCSV。如果您选择 JSON,则可以展开 Advanced JSON Format 下拉列表,并从以下扩展 JSON 格式中选择:

JSON Format
说明
默认扩展 JSON
一种字符串格式,可避免任何 BSON 类型信息丢失。 这是默认的 Compass 设置。
宽松扩展 JSON

一种字符串格式,强调可读性和互操作性,但牺牲了类型保护。也就是说,从宽松格式转换为 BSON 可能会丢失类型信息。

警告:为了数据完整性,不建议使用此格式。

规范扩展 JSON
一种凸显类型保存的字符串格式,但牺牲了可读性和互操作性。 也就是说,从规范模式到 BSON 的转换 通常会保留类型信息,某些特定情况下除外。
7

选择导出文件的位置,然后单击 Select

进度条显示导出的状态。如果在导出过程中发生错误, 进度条将变为红色,并在对话框中显示错误消息。 成功导出后,对话框将关闭。

要从聚合管道导出结果:

1

要了解如何连接部署,请参阅连接 MongoDB

2

您可以从 Collections(集合)标签页选择集合,或者点击左侧窗格中的集合。

3

要了解如何创建聚合管道,请参阅创建聚合管道。

4
5

Export File Type(导出文件类型)下,选择 JSONCSV。如果您选择 JSON,则可以展开 Advanced JSON Format 下拉列表,并从以下扩展 JSON 格式中选择:

JSON Format
说明
文档样本
默认扩展 JSON
一种字符串格式,可避免任何 BSON 类型信息丢失。 这是默认的 Compass 设置。
{
"fortyTwo" : 42,
"oneHalf" : 0.5,
"bignumber" : {
"$numberLong" : "5000000000"
}
}
宽松扩展 JSON

一种字符串格式,强调可读性和互操作性,但牺牲了类型保护。也就是说,从宽松格式转换为 BSON 可能会丢失类型信息。

警告:为了数据完整性,不建议使用此格式。

{
"fortyTwo" : 42,
"oneHalf": 0.5,
"bignumber" : 5000000000
}
规范扩展 JSON
一种凸显类型保存的字符串格式,但牺牲了可读性和互操作性。 也就是说,从规范模式到 BSON 的转换 通常会保留类型信息,某些特定情况下除外。
{
"fortyTwo" : {
"$numberInt" : "42"
},
"oneHalf" : {
"$numberDouble" : "0.5"
},
"bignumber" : {
"$numberLong" : "5000000000"
}
}
6

要从命令行导入和导出数据,可以使用 MongoDB 的数据库工具。请参阅 mongoimportmongoexport。

后退

使用正在使用的加密