參考文章
💓初級>使用MongoDB結合Express和Fetch來實作RESTful API簡單網站(包括用戶Post, Get, Update, Delete等功能)
💓進階>使用MongoDB結合Express和Fetch來實作RESTful API會員系統 (進階)
本文是使用MongoDB 4.4.26版本,
以下的這些工具需要安裝 MongoDB 的 Database Tools,才能使用,也就是說要另外下載。
請按照以下步驟進行操作:
在 Windows 上:
1. 下載 Database Tools: 前往 MongoDB Download Center 下載 MongoDB 的 Database Tools。
2. 解壓縮檔案: 下載完成後,解壓縮檔案到你想要安裝的目錄。建議將它們放在易於訪問的位置,例如 C:\Program Files\MongoDB\Tools。
3. 設定環境變數(可選): 將安裝目錄(例如 C:\Program Files\MongoDB\Tools\bin)添加到系統的 PATH 環境變數中,這樣你就可以在命令提示字元或 PowerShell 中直接執行這些工具。
👉>打開系統屬性
按下 Windows + R 來打開“執行”對話框。
輸入 sysdm.cpl 並按下 Enter 鍵,這將打開系統屬性。
👉>設置環境變數的名稱和值
在彈出的窗口中,輸入環境變數的名稱(名稱通常是大寫,比如 PATH)。
在值(Value)欄位中,輸入環境變數的路徑。比如,如果你想要將 MongoDB 的 bin 目錄添加到 PATH 變數中,你需要輸入 MongoDB 的安裝路徑下的 bin 目錄。
4. 測試安裝: 在命令提示字元或 PowerShell 中執行相關的 Database Tools 指令,例如 mongodump、mongoexport,確保安裝成功。
👩mongoexport 匯出MongoDB的.json檔
切換到D:\exported_data資料夾下面,因為我想在這個路徑下產生匯出的json檔案~
PS C:\Users\xxx> cd D:\exported_data
PS D:\exported_data> mongoexport --db my_database --collection my_custom_users --out exported_data.json
2023-12-13T16:50:21.518+0800 connected to: mongodb://localhost/
2023-12-13T16:50:21.583+0800 exported 2 records
運行以下指令後,就可以看到exported_data.json檔案出現了。
mongoexport --db my_database --collection my_custom_users --out exported_data.json
👨mongoimport 匯入MongoDB的.json檔
要將 JSON 檔案中的數據導入(匯入)到 MongoDB 中,可以使用 mongoimport 命令。
mongoimport --db my_database --collection my_custom_users --file exported_data.json\
這個命令將會從 exported_data.json 檔案中將數據導入到 MongoDB的my_database 資料庫的 my_custom_users 集合中。
D:\exported_data> mongoimport --db my_database --collection my_custom_users --file exported_data.json
2023-12-13T17:06:46.518+0800 connected to: mongodb://localhost/
2023-12-13T17:06:46.591+0800 2 document(s) imported successfully. 0 document(s) failed to import.
👦遇到錯誤,解決方法
2023-12-13T17:06:04.205+0800 continuing through error: E11000 duplicate key error collection: my_database.my_custom_users index: _id_ dup key: { _id: ObjectId('6579678969ba374cd3b6dfae') }
2023-12-13T17:06:04.205+0800 0 document(s) imported successfully. 2 document(s) failed to import.D:\exported_data> mongoimport --db my_database --collection my_custom_users --file exported_data.json
匯入時顯示的錯誤訊息,出現了「重複鍵(duplicate key)」的錯誤,
這是由於在導入過程中已經存在相同 _id 的文檔而導致的錯誤。
因為我把DB 匯出後,沒有把它刪掉,代表我的collection內還保留著原本的資料,
因此當我要把exported_data.json 匯入進去時,就出現錯誤,因為裡面有相同_id的值。
MongoDB 的每個文檔都有一個唯一的 _id 欄位,
如果 JSON 檔案中的文檔已經存在具有相同 _id 值的文檔,那麼在導入時就會出現重複鍵錯誤。
解決這個問題的方式通常是:
1. 修改 JSON 檔案: 如果你確定這些 _id 不需要是唯一的,你可以修改 JSON 檔案中的 _id 值為 MongoDB 中還不存在的唯一值,或者完全刪除 _id 欄位(在導入時 MongoDB 會自動產生新的 _id)。
2. 清空集合後再導入: 如果你想要完全用新的數據替換集合中的現有數據,可以先清空集合,然後再重新導入 JSON 檔案中的數據。你可以使用 db.my_custom_users.drop() 來刪除 my_custom_users 集合中的所有文檔,然後再重新執行 mongoimport。
沒有留言:
張貼留言
喜歡我的文章嗎? 喜歡的話可以留言回應我喔! ^^