sas*_*imi 36 mongodb mongodump
我试图在产品服务器上备份我的mongo数据库,然后恢复然后返回到登台服务器.这里出现了一些问题,db中有很多集合,我想igonre一些我不想在登台服务器上恢复的集合.
我可以通过转储staging db,转储产品db,然后将prodct恢复到staging useing --drop选项来解决这个问题.并在staging db中恢复指定的集合.呃..真的很糟糕.
转储产品数据库
mongodump --host product-server-host --username abcd --password bcda -d db -o pruduct-dump-dir
Run Code Online (Sandbox Code Playgroud)
2. dump staging db
mongodump --host staging-server-host --username abcd --password bcda -d db -o staging -dump-dir
Run Code Online (Sandbox Code Playgroud)
3.恢复所有集合,然后恢复集合,将 恢复pruduct-dump-dir恢复到登台服务器
mongorestore --host staging-server-host --username abcd --password bcda --drop pruduct-dump-dir
mongorestore --host staging-server-host --username abcd --password bcda --drop --collection coll pruducting-dump-dir
Run Code Online (Sandbox Code Playgroud)
我在转储时有没有像ignore-collection这样的选项?任何建议将不胜感激:3
Dan*_*ada 65
现在可从3.0.0版开始
--excludeCollection <collection_name>
--excludeCollectionsWithPrefix <collection_prefix>
Run Code Online (Sandbox Code Playgroud)
重复以排除多于1个
查看文档
小智 8
mongodump --db test --excludeCollection=users --excludeCollection=salaries
Run Code Online (Sandbox Code Playgroud)
您可以添加--collection COLLECTION_NAME转储所需的集合.默认情况下,如果未指定要从数据库转储的集合,MongoDump将转储该数据库中的所有集合.
从 Mongo 3.4 开始,您现在--nsExclude <namespace pattern>可以在从 Mongo 数据库转储还原时指定一个选项,这将从还原操作中排除指定的命名空间。这在mongodump操作已经发生时特别有用。
官方文档在这里:https : //docs.mongodb.com/manual/reference/program/mongorestore/#cmdoption-nsexclude
您可以使用通配符排除多个集合:
mongorestore --db test --nsExclude 'test.*_tmp'
Run Code Online (Sandbox Code Playgroud)
或者,也可以指定多个--nsExclude选项:
mongorestore --db test --nsExclude 'test.collection1' --nsExclude 'test.collection2'
Run Code Online (Sandbox Code Playgroud)