mongodb系列~mongodb數據遷移

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

相關文章
相關標籤/搜索