MongoDB 数据恢复与导出

MongoDB登录
mongo --host localhost --port 27017 -uroot -pdbpasswd --authenticationDatabase admin
查看所有db
show dbs;
进入db库
use db;
查看所有表
show tables;
使用mongodump命令来备份MongoDB数据
导出所有数据到指定目录中
mongodump --host localhost --port 27017 -uroot -pdbpasswd -o dbdirectory --authenticationDatabase admin
导出指定库到指定目录中
mongodump --host localhost --port 27017 -uroot -pdbpasswd -d dbname -o dbdirectory --authenticationDatabase admin
MongoDB恢复
mongorestore -h <hostname><:port> -d dbname <path>
-d :需要恢复的数据库实例,该名称与备份时的名称可以不一致
--drop : 恢复的时候,先删除当前数据,然后恢复备份的数据
<path> :设置备份数据所在位置,你不能同时指定和 --dir 选项,--dir也可以设置备份目录
--dir : 指定备份的目录
例子:
mongorestore --host localhost --port 27017 -uroot -ppdbpasswd --authenticationDatabase admin -d dbname dbdirectory
MongoDB单表备份 (备份db库tables表)
mongoexport --host localhost --port 27017 -uroot -ppdbpasswd  --authenticationDatabase admin -d db -c tables -o /data/offline.json 
MongoDB单表恢复
mongoimport --host localhost --port 27017 -uroot -ppdbpasswd --authenticationDatabase admin -d db -c tables --file /data/offline.json
MongoDB查询指定内容导出
新建查询js
vim sql.js
#### sql为mongo查询语句
var sql = db.getCollection('MongoTable').find({"device_id":'','platform':'0'});
while(sql.hasNext()) {
    printjson(sql.next());
}
导出
mongoexport --host localhost --port 27017 -uroot -ppdbpasswd  --authenticationDatabase admin Mongo_db sql.js >sql.json
Json转csv
cat data.json |jsoncsv |mkexcel > data.csv 

 

[以上命令不包含索引,推荐一下方式备份还原] ------ 20210926 Update

## dump
 mongodump    --host localhost --port 27017 --ssl --sslAllowInvalidCertificates -u root -p pdbpasswd -d mongo-tss-a-us -c vehicle_data -o mongo_dump/prod/mongo-tss-a-us-vehicle_data

## mongorestore
 mongorestore --host localhost --port 27017 --ssl --sslAllowInvalidCertificates -u root -p pdbpasswd -d mongo-tss-a-us --dir mongo_dump/prod/mongo-tss-a-us-vehicle_data/mongo-tss-a-us/

db.getCollection('vehicle_data').getIndexes()
db.getCollection('vehicle_data').stats();
db.vehicle_data.find({"version":{$type:16}}).forEach(function(x){x.version=NumberLong(x.version);db.vehicle_data.save(x)})
db.vehicle_data.find({"version":{$type:16}}).batchSize(10).forEach(function(x){x.version=NumberLong(x.version);db.vehicle_data.save(x)})

posted @ 2017-09-12 17:32  Mr黄瑞  阅读(544)  评论(0编辑  收藏  举报