mongodb TypeError: db.collection is not a function 解決辦法
阿新 • • 發佈:2019-02-01
TypeError: db.collection is not a function 解決辦法
我也是自己踩坑(三個小時)剛剛出來的
- 在使用 MongoDB 資料庫
collection
方法獲取合集的時候,突然報了一個這樣的錯誤,看了好多的方法也沒有解決(也是我太菜了,英文文章看太懂);
話不多說,上解決辦法
最簡單的
- 使用版本降級的方法
-
- 手動將
package.json
檔案裡的mongodb
模組的版本修改降到 3.0 以下的版本 - 然後刪掉之前的
node_modules
依賴包資料夾, 重新使用npm install
或cnpm install
- 然後就可以使用之前方法了
- 手動將
入坑級方法(不修改版本)
- 使用符合
MongoDB 3.0
以上版本的語法 - 直接上程式碼了
- 原始
2.0
版本的程式碼
- 原始
// API 2.0寫法
db.colleaction(colleactionsName);
3.0
版本程式碼
- 3.0 版本的 回撥函式裡的
err,db
db - -返回的實際上是您嘗試訪問的物件的父物件 - 為了訪問正確的物件,你需要再引用你的資料庫名
- 然後通過這次引用的賦值的
mydb
變數 就可以呼叫collection
方法了
- 3.0 版本的 回撥函式裡的
//嘗試 3.0 寫法 成功
const mydb = db.db('需要引用的資料庫名' );
mydb.collection(colleactionsName);