使用 mongoimport 将 CSV 文件导入 MongoDB
使用 MongoDB 时,您可以使用 将文档导入集合。 是从扩展 JSON、CSV 或 TSV 文件导入内容的命令行实用程序。导入文件可能由某个其他导出实用程序创建。mongoimport``mongoimport``mongoexport
本文提供了将CSV文件导入MongoDB的示例。
例
假设我们有以下名为 的 CSV 文件:pets.csv
_id,name,type 1,“Wag”,“Dog” 2,“Bark”,“Dog” 3,“Meow”,“Cat”
以下命令将CSV文件导入MongoDB:
mongoimport --db=PetHotel --type=csv --headerline --file=pets.csv
在本例中,我没有指定要将其导入到的集合,$1()同名的集合。pets
检查结果
让我们来看看这个系列。
db.pets.find()
结果:
{ “_id” : 1, “name” : “Wag”, “type” : “Dog” } { “_id” : 2, “name” : “Bark”, “type” : “Dog” } { “_id” : 3, “name” : “Meow”, “type” : “Cat” }
我们可以看到文档是按预期导入的。
不带列标题的 CSV 文件
在前面的示例中,我们使用参数指定应将第一行用于字段名称。--headerline
如果您的 CSV 文件不包含标题行,则需要使用参数或参数来指定字段名称。--fields``--fieldFile
因此,假设我们的CSV文件没有列线,而是看起来像这样:
1,“Wag”,“Dog” 2,“Bark”,“Dog” 3,“Meow”,“Cat”
然后,我们可以使用以下命令导入文件:
mongoimport --db=PetHotel --type=csv --fields=_id,name,type --file=pets.csv
其结果与上一个示例相同。
指定集合名称
可以使用 (或) 参数指定要将文件导入到的集合。--collection``-c
下面是使用该参数将同一文件导入其他集合的示例:--collection
mongoimport --db=PetHotel --collection=pets2 --type=csv --fields=_id,name,type --file=pets.csv
如果集合尚不存在,则将创建该集合。如果它已存在,则导入结果将取决于您使用的模式(稍后会详细介绍)。
在我们的例子中,新创建的集合如下所示:
db.pets2.find()
结果:
{ “_id” : 2, “name” : “Bark”, “type” : “Dog” } { “_id” : 3, “name” : “Meow”, “type” : “Cat” } { “_id” : 1, “name” : “Wag”, “type” : “Dog” }
导入前删除集合
可以使用该参数删除与尝试创建/导入的集合同名的任何现有集合。--drop
假设我们有第二个文件,名为 ,其中包含以下文档:pets2.csv
_id,name,type,weight 4,“Bubbles”,“Fish”,3
如果我使用该选项将该文档导入集合,会发生什么情况:pets2``--drop
mongoimport --db=PetHotel --collection=pets2 --type=csv --headerline --drop --file=pets2.csv
输出:
2021-01-03T15:05:40.281+1000 connected to: mongodb://localhost/ 2021-01-03T15:05:40.284+1000 dropping: PetHotel.pets2 2021-01-03T15:05:40.336+1000 1 document(s) imported successfully. 0 document(s) failed to import.
这告诉我们集合已被丢弃,并且导入了一个文档。
让我们来看看这个系列:
db.pets2.find()
结果:
{ “_id” : 4, “name” : “Bubbles”, “type” : “Fish”, “weight” : 3 }
正如预期的那样,我们的新文档是集合中唯一的文档。
导入模式
有多种导入模式可用于 。这些模式确定在集合中已存在您尝试导入到的匹配文档时会发生什么情况。mongoimport
模式如下:
| 模式 | 描述 |
|---|---|
insert |
这是默认模式。此模式插入导入文件中的文档。如果集合中已存在匹配的文档,则会发生错误。匹配文档是与导入文件中的文档具有相同唯一 ID(如匹配字段)的文档。_id |
upsert |
将数据库中的现有文档替换为导入文件中的匹配文档。将插入所有其他文档。 |
merge |
将导入文件中的文档匹配的现有文档与新文档合并。将插入所有其他文档。 |
delete |
删除数据库中与导入文件中的文档匹配的现有文档。任何不匹配的文档都不起作用。 |
有关每种模式的示例,请参阅 mongoimport 的导入模式。
检查mongoimport
mongoimport是 MongoDB 数据库工具包的一部分。MongoDB数据库工具是一套用于使用MongoDB的命令行实用程序。
如果您不确定是否安装了MongoDB数据库工具/,请尝试在终端或命令提示符下运行以下命令进行检查:mongoimport
mongoimport --version
如果有,您应该会看到版本信息等。如果您没有它,您可以使用MongoDB网站上的安装说明将其安装到您的系统上。
在哪里运行命令?mongoimport
您需要从系统的命令行(例如,新的终端或命令提示符窗口)运行命令。mongoimport
不要从 shell 运行它们。mongo