__都非拉得的博客

Posted on 08 Mar 2021

mongodump

--host <hostname><:port>, -h <hostname><:port>  # 指定备份的主机ip和端口号,默认值localhost:27017
--port # 指定端口号 默认27017

--username <username>, -u <username> # 指定用户名
--password <password>, -p <password> # 指定密码
--authenticationDatabase <dbname> # 指定认证的数据库
--authenticationMechanism <name> # 指定认证的算法 ,默认值 SCRAM-SHA-1
--db <database>, -d <database> # 指定备份的数据库,未指定的话,备份所有的数据库,但不包含local库
--collection <collection>, -c <collection> # 指定备份的集合,未指定则备份指定库中的所有集合。
--query <json>, -q <json>  # 指定 json 作为查询条件。来备份我们过滤后的数据。
--queryFile <path>  # 指定 json 文档路径,以该文档的内容作为查询条件,来备份我们过滤后的数据。
--quit # 通过抑制 MongoDB的复制,连接等活动,来实现备份。
--gzip  # 开启压缩,3.2版本后可以使用,输出为文件的话会带有后缀.gz
--out <path>, -o <path>  # 输出的目录路径

--repir # 修复数据时使用 下面有详细介绍
--oplog # mongodump 会将 mongodump 执行期间的 oplog 日志 输出到文件 oplog.bson,这就意味着从备份开始到备份结束的数据操作我们都可以记录下来。
--archive <file> # 输出到单个存档文件或者是直接输出。


--dumpDbUsersAndRoles # 只有在 使用 --db 时才适用,备份数据库的包含的用户和角色。
--excludeCollection string # 排除指定的集合,如果要排除多个,使用多个--excludeCollection 
--numParallelCollections int, -j int # 并行导出的集合数,默认为4


--ssl  # 指定 TLS/SSL 协议
--sslCAFile filename # 指定认证文件名
--sslPEMKeyFile <filename>
--sslPEMKeyPassword <value>
--sslCRLFile <filename>
--sslAllowInvalidCertificates
--sslAllowInvalidHostnames
--sslFIPSMode

示例:

// 1. 排除指定的集合
$ mongodump  --db test --excludeCollection=users --excludeCollection=salaries

// 2. 指定ip,端口,用户名,认证,压缩,输出目录
mongodump --host mongodb1.example.net --port 37017 --username user --password "pass" --gzip --out /opt/backup/mongodump-2019-04-17

mongoexport

-h,--host:      代表远程连接的数据库地址,默认连接本地Mongo数据库;
--port:         代表远程连接的数据库的端口,默认连接的远程端口27017;
-u,--username:  代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;
-p,--password:  代表连接数据库的账号对应的密码;
-d,--db:        代表连接的数据库;
-c,--collection:代表连接数据库中的集合;
-f, --fields:   代表集合中的字段,可以根据设置选择导出的字段;
--type:         代表导出输出的文件类型,包括csv和json文件;
-o, --out:      代表导出的文件名;
-q, --query:    代表查询条件;
 --skip:        跳过指定数量的数据;
--limit:        读取指定数量的数据记录;
--sort:         对数据进行排序,可以通过参数指定排序的字段,并使用1和-1来指定排序的方式,其中1为升序排列,而-1是用于降序排列,如sort({KEY:1})

示例:

mongoexport -h 127.0.0.1 --port 12027 --authenticationDatabase=admin -u user -p "pass" -d test -c users --type csv -f uid,name,sex -o test/users.csv 

mongoimport

h,--host:       代表远程连接的数据库地址,默认连接本地Mongo数据库;
--port:         代表远程连接的数据库的端口,默认连接的远程端口27017;
-u,--username:  代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;
-p,--password:  代表连接数据库的账号对应的密码;
-d,--db:        代表连接的数据库;
-c,--collection:代表连接数据库中的集合;
-f, --fields:   代表导入集合中的字段;
--type:         代表导入的文件类型,包括csv和json,tsv文件,默认json格式;
--file:         导入的文件名称
--headerline:   导入csv文件时,指明第一行是列名,不需要导入;

示例:

mongoimport --port 27030 -u root -p 123456 -d test -c users  --type=csv --file bike.csv

附录

mongoexport官网文档