一 简介:今天来聊聊mongo的数据迁移
二 迁移mongodb
db.table.renameCollection("table_bak");
db.table.ensureIndex({"receiverId":1,"sentTime":-1});
db.table.ensureIndex({"sentTime":-1});
nohup mongodump --db dbs --collection table_bak --query '{"sentTime": { $gt: "2019-05-01 00:00:00" } }' -o /home/data/ &
mongorestore --port=40000 --db dbs --collection table /home/data/dbs/table_bak.bsonjson
4 建立相应用户
1 切换到相应库下
2 执行建立命令
use db
db.createUser(
{
user:"user",
pwd:"password",
roles:[{role:"readWrite",db:"dbname"}]
}
)
3 进行验证
mongo --port -u'user' -p'password' --authenticationDatabase(有的版本能够不加) db
5 进行查看数据有效性
三 备后注意
1 mongodump导出的是bson格式,是二进制形式,不过能够使用mongo自带的bsondump命令查看里面的数据,而mongoexport导出的则是文本,能够是csv、json格式。
2 JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。
3 在一些mongodb版本之间,BSON格式可能会随版本不一样而有所不一样,因此不一样版本之间用mongodump/mongorestore可能不会成功,具体要看版本之间的兼容性。当没法使用BSON进行跨版本的数据迁移的时候,使用JSON格式即mongoexport/mongoimport是一个可选项。跨版本的 mongodump/mongorestore我的并不推荐,实在要作请先检查文档看两个版本是否兼容(大部分时候是的)。
4 JSON虽然具备较好的跨版本通用性,但其只保留了数据部分,不保留索引,帐户等其余基础信息。使用时应该注意,导入导出后从新创建这些信息rest