一 簡介:今天來聊聊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