导入导出和备份恢复
mongodb数据备份和恢复主要分为2种:
- 针对库中表的mongoexport和mongoimport
- 针对库的mongodump和mongorestore
通用参数说明
-h IP --port 端口 -u 用户名 -p 密码
- mongoexport导出数据
# 导出json数据
mongoexport -d db -c collection -o save-file.dat
# 导出CSV数据
mongoexport -d db -c collection --type=csv -f field1,field2 -o save-file.dat
- db 目标数据库
- collection 目标集合
- save-file.dat 要保存的文件
- --type 指定导出的格式,默认是json
- -f 后面是需要导出的字段名称,多个字段名用逗号隔开
- -q 可以根据查询条件导出,-q '{ "uid" : "100" }' 导出uid为100的数据
- mongoimport导入数据
# 导入json数据
mongoimport -d db -c collection --file save-file.dat
# 导入CSV数据
mongoimport -d db -c collection --type=csv --headerline --file save-file.dat
- db目标数据库
- collection目标集合
- save-file.dat要导入的文件
- --type指定导出的格式,默认是json
- --headerline 表名明不导入第一行的header
- --upsert:插入或者更新现有数据
- --drop 先删除所有的记录,然后恢复
- mongodump备份数据
mongodump -d db
mongodump -d db -o save-dir
- db目标数据库
- save-dir要保存的文件目录,默认是dump
- mongorestore备份数据
mongorestore -d db
mongorestore -d db save-dir
- db目标数据库
- save-dir要保存的文件目录,默认是dump
- --drop 先删除所有的记录,然后恢复
数据大小
- 获取mongoDB中数据库的大小
> use databasename
> db.stats()
{
"collections" : 3,
"objects" : 80614,
"dataSize" : 21069700,
"storageSize" : 39845376,
"numExtents" : 9,
"indexes" : 2,
"indexSize" : 6012928,
"ok" : 1
}
storageSize 表示的就是数据库的大小,显示出的数字的单位是字节
indexSize 表示索引大小
- 获取MongoDB中collection大小
db.collection.totalSize() // collection中索引+data所占空间
db.collection.dataSize() // collection中的数据大小
db.collection.storageSize() // 为collection分配的空间大小,包括未使用的空间
db.collection.totalIndexSize() // collection中索引数据大小
查看连接数
xx:PRIMARY> db.serverStatus().connections
{ "current" : 1210, "available" : 78790, "totalCreated" : 2132 }
命令行执行 json
mongo --nodb run.json
# run.json
conn = new Mongo("localhost:27017");
db = conn.getDB("testdb");
db.test.find()