使用MongoDB命令行导入数据库能方便地进行数据迁移和恢复,可以根据数据格式和来源,选择适合的工具。
工具/方法 | 主要用途 | 支持的数据格式 | 关键特点 |
---|---|---|---|
mongoimport | 导入JSON、CSV、TSV等格式文件 | JSON, CSV, TSV | 适用于单集合数据导入,支持灵活字段映射 |
mongorestore | 恢复mongodump 创建的二进制备份(BSON格式) |
BSON (二进制格式) | 用于恢复整个数据库或集合,包含索引 |
mongo shell | 导入JavaScript 脚本 | JavaScript | 如Navicat导出备份的数据备份 |
📁 使用 mongoimport
导入数据文件
mongoimport
工具适合导入如JSON、CSV、TSV格式的数据文件。其基本命令结构如下:
mongoimport --db <数据库名> --collection <集合名> --file <文件路径> [选项]
常用选项包括:
-
--db
(-d
):指定要导入的数据库名称。 -
--collection
(-c
):指定要导入的集合名称。 -
--file
:指定要导入的数据文件路径。 -
--drop
:导入前删除目标集合中所有现有文档不加此选项则为追加数据。 -
--jsonArray
:当JSON文件内容以数组形式组织时需要使用此选项。 -
--type
:明确指定文件类型(如csv
,tsv
)。 -
--headerline
:导入CSV/TSV文件时,使用第一行作为字段名。 -
--ignoreBlanks
:忽略CSV/TSV文件中的空字段
示例命令
1. 导入JSON文件(文件内容为JSON数组):
mongoimport --db mydatabase --collection mycollection --file /path/to/data.json --jsonArray
2. 导入CSV文件(第一行为列名):
mongoimport --db mydatabase --collection mycollection --type csv --headerline --file /path/to/data.csv
3. 导入前清空集合:
mongoimport --db mydatabase --collection mycollection --file /path/to/data.json --drop
💾 使用 mongorestore
恢复数据库备份
如果你有通过 mongodump
创建的二进制备份文件(通常是BSON格式),应使用 mongorestore
进行恢复。这种方式能更好地保留数据类型和索引。其基本命令结构如下:
mongorestore --db <恢复后的数据库名> <备份数据路径> [选项]
常用选项包括:
-
--db
(-d
):指定恢复后数据库的名称。 -
--drop
:恢复前删除目标数据库中已存在的同名集合 。 -
--dir
:指定备份数据所在的目录路径(若未指定,则默认为当前目录下的dump/
文件夹)。
示例命令
-
恢复整个备份到数据库
mydatabase
:mongorestore --db mydatabase /path/to/backup/mydatabase
-
恢复前清空现有数据:
mongorestore --db mydatabase --drop /path/to/backup/mydatabase
💎使用mongo shell运行脚本导入数据
-
使用
mongo
命令来执行您的 JavaScript 文件。基本语法如下:mongo <数据库名> <脚本文件路径>
<数据库名>
:要导入数据的数据库名称。<脚本文件路径>
:JavaScript 文件路径。
例如,如果数据库叫
myapp
,脚本文件在当前目录下且名为data.js
,命令就是这样:mongo myapp data.js
如果您的 MongoDB 实例非本地或非27017端口,需要身份验证,您可能需要提供用户名、密码和认证数据库(通常是
admin
):mongo --host 127.0.0.1:3717 -u "您的用户名" -p "您的密码" --authenticationDatabase admin myapp data.js
工作原理:这个命令会启动 mongo shell,连接到指定的数据库,然后逐行执行您
.js
文件中的 MongoDB 命令(例如db.getCollection(...).insert(...)
或db.getCollection(...).find(...).forEach(...)
),从而将数据插入到数据库中
评论区