mongoimport
是一个用于将数据导入到MongoDB数据库的命令行工具。
一、基本语法
mongoimport --db <database_name> --collection <collection_name> --file <file_path>
--db
:指定要导入数据的目标数据库名称。例如,如果你的数据库名为mydb
,则在命令中写--db mydb
。--collection
:指定要将数据导入到其中的集合名称。假设你要将数据存入名为mycollection
的集合,就写--collection mycollection
。--file
:这是最重要的参数之一,它指向包含要导入数据的文件路径。这个文件可以是多种格式,如JSON、CSV等。
二、支持的文件格式
- JSON格式
- JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。当导入JSON文件时,
mongoimport
会将JSON对象直接插入到指定的集合中。 - 例如,一个简单的JSON文件内容如下:
json [ { "name": "John", "age": 30 }, { "name": "Jane", "age": 25 } ]
- 可以使用命令
mongoimport --db testdb --collection users --file users.json
将这个文件中的数据导入到名为testdb
的数据库中的users
集合。 - CSV格式
- CSV(Comma - Separated Values)是以逗号分隔值的文件格式。当导入CSV文件时,需要指定一些额外的参数来告诉
mongoimport
如何解析文件中的列。 - 例如,有一个CSV文件
products.csv
,内容如下:csv name,price,quantity Product1,10.0,5 Product2,15.0,3
- 可以使用命令
mongoimport --db store --collection products --type csv --headerline --file products.csv
来导入。其中--type csv
指定文件类型为CSV,--headerline
表示文件的第一行是列名。
三、常见选项和参数
--drop
- 如果指定了这个选项,
mongoimport
会在导入数据之前先删除目标集合中的所有现有数据。这在你想要完全替换集合中的数据时非常有用。例如:mongoimport --db mydb --collection mycollection --file data.json --drop
。 --upsert
- 这个选项允许在导入数据时进行更新插入操作。如果文档在集合中已经存在,根据指定的唯一键(可以使用
--upsertFields
指定)来更新文档;如果不存在,则插入新文档。 --numInsertionWorkers
- 用于指定插入数据的工作线程数。增加这个数值可以加快导入速度,但也可能会对系统资源产生更大的压力。例如,
--numInsertionWorkers 4
表示使用4个工作线程来插入数据。
四、注意事项
- 权限问题:确保运行
mongoimport
命令的用户具有足够的权限来访问目标数据库和执行数据导入操作。 - 数据格式一致性:在导入数据时,要确保文件中的数据格式与目标集合的预期结构相匹配,尤其是在处理CSV文件或自定义格式的数据时。