启动MongoDB
$mongod –fork –logpath=/data/log/r3.log
–fork 允许mongod后台运行,但是必须指定日志记录文件路径(Enables a daemon mode that runs the mongos process in the background.)
–logpath 指定日志记录文件路径
导出Collections
$mongoexport -d test -c user -o user.dat
-d 指定数据库
-c 指定collections
-o 指定输出文件名称
导出Collections为CSV格式
$mongoexport -d test -c user –csv -f uid,username,age -o user_csv.dat
-f 指明需要导出哪些列
—-csv 指明导出格式为CSV
导入Collections
$mongoimport -d test -c user user.dat
导入CSV文件
$mongoimport -d test -c user –type csv –headerline –file user_csv.dat
-type 指明要导入的文件格式
-headerline 批明不导入第一行,因为第一行是列名
-file 指明要导入的文件路径
数据库备份
$ mongodump -d test
2016-02-19T16:44:20.538+0800 writing test.things to
2016-02-19T16:44:20.538+0800 writing test.students to
2016-02-19T16:44:20.538+0800 writing test.fs.chunks to
2016-02-19T16:44:20.538+0800 writing test.thins to
2016-02-19T16:44:20.539+0800 done dumping test.thins (9 documents)
2016-02-19T16:44:20.539+0800 done dumping test.things (20 documents)
2016-02-19T16:44:20.540+0800 done dumping test.students (8 documents)
2016-02-19T16:44:20.540+0800 writing test.user to
2016-02-19T16:44:20.540+0800 writing test.fs.files to
2016-02-19T16:44:20.540+0800 writing test.students_res to
2016-02-19T16:44:20.541+0800 done dumping test.fs.files (1 document)
2016-02-19T16:44:20.541+0800 done dumping test.students_res (1 document)
2016-02-19T16:44:20.541+0800 done dumping test.user (2 documents)
2016-02-19T16:44:20.544+0800 done dumping test.fs.chunks (5 documents)
也可以加入-o path_to_dump来指定备份的目录
数据库恢复
$ mongorestore -d test dump/*
**如果想恢复数据库,可以不用先删除数据库,可以在命令后面加入-drop来删除表,然后再想表中插入数据
查看数据库正在做什么
db.currentOp();
创建数据库
MongoDB没有创建数据库的命令,可以直接使用use test来创建test数据库
创建Collcetion
db.createCollection(“questions”);
MongoDB实时监控
此工具可以快速的查看某组运行中的 MongoDB 实例的统计信息
$mongostat
insert: 每秒插入量
query: 每秒查询量
update: 每秒更新量
delete: 每秒删除量
locked: 锁定量
qr | qw: 客户端查询排队长度(读|写)
ar | aw: 活跃客户端量(读|写)
conn: 连接数 time: 当前时间
删除重复数据,建立索引(MongoDB 2.x)
coll.ensureIndex({productid:1}) // 在productid上建立普通索引
coll.ensureIndex({district:1, plate:1}) // 多字段索引
coll.ensureIndex({productid:1}, {unique:true}) // 唯一索引
coll.ensureIndex({productid:1}, {unique:true, dropDups:true}) // 建索引时,如果遇到索引字段值已经出现过的情况,则删除重复记录
coll.getIndexes() // 查看索引
coll.dropIndex({productid:1}) // 删除单个索
db.users.dropIndex({uid:1});
db.users.ensureIndex({uid:1, name:1}, {unique:true, dropDups:true});