Mongo复制备份数据表,通过设置查询条件筛选指定数据来复制一份备份数据
缘由:需要查询一下服务器上某个数据表里满足指定查询条件的数据内容备份并下载到本地。
- 因为服务器有的数据表内容太大,直接下载很慢,所以可以先查询符合条件的数据,先拷贝到一个新的数据表,然后再下载新的数据表就会节约很多时间
1. 通过设置查询条件,来拷贝满足条件的数据到新的数据表
db.users.find({createAt: {$gte: ISODate("2021-03-01T00:00:00.000Z")}}).forEach(function(x){db.test.insert(x)})
以上命令为查询users数据表中,createAt创建时间字段大于ISODate("2021-03-01T00:00:00.000Z")的数据,并将查询到的数据拷贝到新的数据表test中
2. 备份users和test数据表所属的数据库bot
mongodump -h 127.0.0.1 --port 27017 -d bot -o /home/robotmgr/2021-06-03/bot
以上命令为备份bot数据库到/home/robotmgr/2021-06-03/bot的文件路径下
3. 通过服务器连接管理软件或者scp命令下载/home/robotmgr/2021-06-03/bot的文件路径下的gift数据库中的test.bson和test.metadata.json文件
4. 在下载目录下解压test.bson和test.metadata.json文件,并分别改名为最初需要备份的数据表名称users
5. windows下恢复从服务器下载被改名的users.bson文件,备份users数据表内容
mongorestore.exe -d bot C:\Users\xxx\Downloads\xxx\users.bson
以上命令为恢复C:\Users\xxx\Downloads\xxx\路径下的users数据表内容到本地的bot数据库
ps: users.bson的所属路径名不能有(), 否则需要改名文件夹, 比如C:\Users\xxx\Downloads\test (1)\这个最终路径有(1), 恢复数据就会失败,需要改名后在恢复数据表内容
Computer science and software engineering have always been my passion
作者:游弋在冷风中
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.