1.备份全部数据库
mkdir db_bak
cd db_bak
../bin/mongodump
../bin/mongodump
connected to: 127.0.0.1
all dbs
DATABASE: comedy????? to????? dump/comedy
comedy.cartoons to dump/comedy/cartoons.bson
2 objects
comedy.system.indexes to dump/comedy/system.indexes.bson
4 objects
comedy.storeCollection to dump/comedy/storeCollection.bson
2 objects
comedy.mycollection to dump/comedy/mycollection.bson
2 objects
DATABASE: yuexiaosheng????? to????? dump/yuexiaosheng
yuexiaosheng.mycollection to dump/yuexiaosheng/mycollection.bson
3 objects
yuexiaosheng.system.indexes to dump/yuexiaosheng/system.indexes.bson
2 objects
yuexiaosheng.system.users to dump/yuexiaosheng/system.users.bson
1 objects
DATABASE: *????? to????? dump/*
DATABASE: admin????? to????? dump/admin
DATABASE: test????? to????? dump/test
直接在该目录下生成了一个文件夹dump
下面有数据库文件
ls
*????????? admin????????? comedy????????? test????????? yuexiaosheng
pwd
/Users/mc2/mongo/db_bak/dump
这样就备份了所有数据了。
2.备份指定的数据库
../bin/mongodump -d yuexiaosheng
这样就备份了单个数据库
connected to: 127.0.0.1
DATABASE: yuexiaosheng????? to????? dump/yuexiaosheng
yuexiaosheng.mycollection to dump/yuexiaosheng/mycollection.bson
3 objects
yuexiaosheng.system.indexes to dump/yuexiaosheng/system.indexes.bson
2 objects
yuexiaosheng.system.users to dump/yuexiaosheng/system.users.bson
1 objects
dump目录下仅仅只有一个文件了yuexiaosheng 这个数据库
3.备份一个数据库中指定的一个集合
../bin/mongodump -d yuexiaosheng -c mycollection
connected to: 127.0.0.1
DATABASE: yuexiaosheng????? to????? dump/yuexiaosheng
yuexiaosheng.mycollection to dump/yuexiaosheng/mycollection.bson
3 objects
4.恢复全部数据库
mongorestore --drop
说明:将备份的所有数据库恢复到数据库,--drop指定恢复数据之前删除原来数据库数据,否则会造成回复后的数据中数据重复。
5、恢复某个数据库的数据
mongorestore -d yuexiaosheng --drop
yuexiaosheng的数据恢复到数据库。
/Users/mc2/mongo/bin/mongorestore -d yuexiaosheng
connected to: 127.0.0.1
ERROR: root directory must be a dump of a single database
when specifying a db name with --db
意思是说dump目录下只能仅仅有一个数据库
../bin/mongorestore -d yuexiaosheng --directoryperdb /Users/mc2/mongo/db_bak/dump/yuexiaosheng/
加入详细的地址即可成功
/Users/mc2/mongo/db_bak/dump/yuexiaosheng/ ?精确到数据库名称,不是dump
6、恢复某个数据库的某个集合的数据
mongorestore -d pagedb -c page --drop
说明:将备份的pagedb的的page集合的数据恢复到数据库。
../bin/mongorestore -d yuexiaosheng -c mycollection --directoryperdb /Users/mc2/mongo/db_bak/dump/yuexiaosheng/mycollection.bson
精确到mycollection.bson
7、从向MongoDB导出数据到CSV
db.mycollection.find()
{ "_id" : ObjectId("5031bb3ee6d6c7a903fb631b"), "title" : "jack is 2.0", "online" : "false" }
{ "_id" : ObjectId("5031bb50e6d6c7a903fb631c"), "title" : "jack is 3.0", "online" : "false" }
{ "_id" : ObjectId("5031bd2ae6d6c7a903fb631d"), "title" : "jack is 3.0", "online" : "false" }
对于这样的数据指定特定文件进行mongodb导出
bin/mongoexport -d yuexiaosheng -c mycollection -q {} -f _id,title,online --csv > mycollection.csv
connected to: 127.0.0.1
exported 3 records
说明:将pagedb数据库中page集合的数据导出到pages.csv文件,其中各选项含义:
-f 指定cvs列名为_id,title,url,spiderName,pubDate
-q 指定查询条件
指定条件进行的导出
bin/mongoexport -d yuexiaosheng -c mycollection -q {"title","jack is 2.0"} -f _id,title,online --csv > mycollection.csv
ERROR: too many positional options
bin/mongoexport -d yuexiaosheng -c mycollection -q '{"title":"jack is 2.0"}' -f _id,title,online --csv > mycollection.csv
connected to: 127.0.0.1
exported 1 records
必须在搜索条件{} 外面加单引号,才能正确导出。
8、向MongoDB导入数据
mongoimport -d yuexiaosheng -c mycollection --type csv --headerline --drop < mycollection.csv
connected to: 127.0.0.1
dropping: yuexiaosheng.mycollection
imported 4 objects
说明:将文件csvORtsvFile.csv的数据导入到pagedb数据库的page集合中,使用cvs或tsv文件的列名作为集合的列名。需要注意的是,使用--headerline选项时,只支持csv和tsv文件。
--type支持的类型有三个:csv、tsv、json