【问题标题】:db.collection is not a functiondb.collection 不是函数
【发布时间】:2018-09-21 21:53:46
【问题描述】:

我正在尝试使用NodejsMongoDB 集合中简单地插入一个条目。这是我的代码:

代码:

const MongoClient = require('mongodb').MongoClient;

MongoClient.connect('mongodb://localhost:27017/TodoApp', (err, db) => {
  if (err) {
    return console.log('Unable to connect to MongoDB server');
  }
  console.log('Connected to MongoDB server');

  db.collection('Todos').insertOne({
    text: 'Something to do',
    completed: false
  }, (err, result) => {
    if (err) {
      return console.log('Unable to insert todo', err);
    }

    console.log(JSON.stringify(result.ops, undefined, 2));
  });

  db.close();
});

当我运行代码时,它显示以下错误:

错误:

TypeError: db.collection is not a function

【问题讨论】:

标签: node.js mongodb nosql


【解决方案1】:

卸载现有的 mongodb 包并使用以下命令重新安装解决了问题

npm uninstall mongodb --save
npm install mongodb@2.2.33 --save 

版本 MongoDB >= 3 - 该数据库变量实际上是您尝试访问的对象的父对象。如果你使用 mongo 3+:

const myDb = db.db('YourDatabase') 
myDb.collection('YourDatabase).insertOne .... 

【讨论】:

    【解决方案2】:

    你可以重写你的代码如下

    MongoClient.connect(url,(err,db) =>{ 
      const database= db.db('TodoApp')
      database.collection('Todos').insertOne({})
    }
    

    【讨论】:

      【解决方案3】:

      此错误的原因是 NodeJs 驱动程序的版本。 TypeError: db.collection is not a function. 如果版本> 3.0.1,则必须将数据库更改为客户端。有关更多信息,请查看此页面,它对我有帮助! [db.collection is not a function when using MongoClient v3.0

      希望有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-17
        • 2018-06-04
        • 2018-06-09
        • 1970-01-01
        • 1970-01-01
        • 2021-11-05
        • 2021-10-31
        相关资源
        最近更新 更多