mongoimport-MongoDB导入数据


mongoimport是一个用于将数据导入到MongoDB数据库的命令行工具。

一、基本语法

mongoimport --db <database_name> --collection <collection_name> --file <file_path>

  • --db:指定要导入数据的目标数据库名称。例如,如果你的数据库名为mydb,则在命令中写--db mydb
  • --collection:指定要将数据导入到其中的集合名称。假设你要将数据存入名为mycollection的集合,就写--collection mycollection
  • --file:这是最重要的参数之一,它指向包含要导入数据的文件路径。这个文件可以是多种格式,如JSON、CSV等。

二、支持的文件格式

  1. JSON格式
  2. JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。当导入JSON文件时,mongoimport会将JSON对象直接插入到指定的集合中。
  3. 例如,一个简单的JSON文件内容如下: json [ { "name": "John", "age": 30 }, { "name": "Jane", "age": 25 } ]
  4. 可以使用命令mongoimport --db testdb --collection users --file users.json将这个文件中的数据导入到名为testdb的数据库中的users集合。
  5. CSV格式
  6. CSV(Comma - Separated Values)是以逗号分隔值的文件格式。当导入CSV文件时,需要指定一些额外的参数来告诉mongoimport如何解析文件中的列。
  7. 例如,有一个CSV文件products.csv,内容如下: csv name,price,quantity Product1,10.0,5 Product2,15.0,3
  8. 可以使用命令mongoimport --db store --collection products --type csv --headerline --file products.csv来导入。其中--type csv指定文件类型为CSV,--headerline表示文件的第一行是列名。

三、常见选项和参数

  1. --drop
  2. 如果指定了这个选项,mongoimport会在导入数据之前先删除目标集合中的所有现有数据。这在你想要完全替换集合中的数据时非常有用。例如:mongoimport --db mydb --collection mycollection --file data.json --drop
  3. --upsert
  4. 这个选项允许在导入数据时进行更新插入操作。如果文档在集合中已经存在,根据指定的唯一键(可以使用--upsertFields指定)来更新文档;如果不存在,则插入新文档。
  5. --numInsertionWorkers
  6. 用于指定插入数据的工作线程数。增加这个数值可以加快导入速度,但也可能会对系统资源产生更大的压力。例如,--numInsertionWorkers 4表示使用4个工作线程来插入数据。

四、注意事项

  • 权限问题:确保运行mongoimport命令的用户具有足够的权限来访问目标数据库和执行数据导入操作。
  • 数据格式一致性:在导入数据时,要确保文件中的数据格式与目标集合的预期结构相匹配,尤其是在处理CSV文件或自定义格式的数据时。