[自學經驗回顧] 想用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/

是真的可以用的喔!

--

--

No responses yet