MongoDB 匯入匯出資料其實才鐵人賽的文章當中就寫過了,不過一直覺得不太完整,特別是匯出 json 這塊,所以還是重新發一次。
MongoDB 總共有兩組指令,分別是能夠匯出 bson 的 mongodump
以及匯出 json 的 mongoexport
。前者顧名思義就是匯出完整的 bson 以及 index 完整集合資料,後者只能夠匯出 json 格式,所以會有資料型態遺失的問題,唯一優點就是能夠閱讀。
mongodump
/mongorestore
- 格式 bson
- 包含 index
- 資料型態不會遺失
- 匯出後人類無法閱讀
- 匯出速度較快
- 匯入資料不會有資料型別遺失問題
- 僅適合維運備份資料使用
mongoexport
/mongoimport
- 格式 json
- 不包含 index
- 匯出速度較慢
- 資料型別會遺失,所以無法用來匯入匯出
- 僅適合人類閱讀
以上兩組指令是成對使用的,雖然我不太能理解為什麼要設計兩套….
mongodump
常用的參數設定有:
- host: DB位址
- u: User,登入帳號
- p: Password,登入密碼
- authenticationDatabase: 預設的唯一DB
- d: database,要匯出資料的DB
- c: collection,要匯出資料的Collection
- query: 要用來查詢/過濾資料的語法
- o: output,匯出資料的路徑
指令範例
1 | mongodump --host "127.0.0.1:27017" -u root -p pass --authenticationDatabase admin -d dbname -c 'collection.name' -o "/Users/pattri.chou/mongodump" --query='{"_id": {"$in":["AAA","BBB"]}}' |