[自學經驗回顧] 想用Mongoose同時連接兩個資料庫
在AC學期2–3的一個全端專案「老爸的私房錢」想用到MongoDB的兩個資料庫。
一個存放帳目細節,一個存放分類項目。
狀況
我只學過用mongoose.connect一次連接一個資料庫,但這次我有兩個資料庫需要同時連線。
第一次出手失敗
我的思考邏輯:用mongoose.connect做兩次。
例如
mongoose.connect(‘mongodb://localhost/list-1’)
const dbOne = mongoose.connection
mongoose.connect(‘mongodb://localhost/list-2’)
const dbTwo = mongoose.connection
結果看到錯誤訊息是無法連接兩個資料庫…
後來又查找了 Mongoose 的官網,在 Multiple connections 看到mongoose.createConnection() 的用法。
The mongoose.createConnection() function takes the same arguments as mongoose.connect() and returns a new connection.
開心嘗試了之後發現還是不行。
這邊卡了應該有一個多小時,查網路文章、實作嘗試、查官網。
努力想嘗試有沒有辦法可以同時連接兩個資料庫。
如何定義問題 (卡點)
- 判斷自己「不會」或「不知道」的事情是什麼?
因為用mongoose.createConnection()也失敗,回到官網看看。
發現下面還有一行字:「Models are always scoped to a single connection.」
看來真的沒辦法用 Mongoose 同時連結兩個資料庫。
尋找與嘗試
既然無法連接兩個資料庫,那是否可以在一個資料庫建立兩個子資料庫?
結果可行!
掌握關鍵,撥雲見月
最後是睡個覺起來忘記了前一晚執著的方向,跳脫原本的思路轉往另一個角度思考。
就想到如果只能連結一個資料庫,那就應該以這為基礎來找解決辦法,因此冒出也許能建立子資料庫的方向。
回顧與發現
關鍵環節:描出可以運用的範圍在哪,就可以縮小思考和尋找的範圍。
學到如果確定一條路堵住了,就要換往別的方向找入口,才能盡快找到進入的方法。
分享與展望
經過這次的經驗,對 Mongoose 的官網有提升親切感。
原本蠻排斥讀 Mongoose 的官網說明,因為覺得不是很好懂,範例也沒有MDN簡單明瞭(被MDN寵壞XD)。
但這次為了找到一次連兩個資料庫的方法,發現看再多網路文章都不及官網。
因為如果早點在官網讀到他的功能限制,就能很快判斷這條路通還是不通,能大大減少摸索的時間。
所以未來會希望自己找方法盡量是先從官網開始查,可能可以比較事半功倍唷!
最後,歡迎來看看我的第一個全端專案:
https://frozen-ridge-59636.herokuapp.com/
是真的可以用的喔!