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