mongdb TypeError:db.collection不是函数

时间:2017-12-07 09:10:09

标签: node.js mongodb

当我运行此代码时,它出现错误' TypeError:db.collection不是函数'。如何解决此问题以及此代码中的错误。



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

// Connection url
const url = 'mongodb://localhost:27017/blog';

// Connect using MongoClient
MongoClient.connect(url, (err, db) => {
  const note = {
    text: 'Note content text',
    title: 'Note title'
  };
  
  db.collection('notes').insert(note, (err, result) => {
    if (err) {
      console.log('An error has occurred!')
    } else {
      console.log('Insert success!')
    }
  });
});




3 个答案:

答案 0 :(得分:7)

您在项目中安装的是mongodb版本错误。您应该在项目中运行 npm install mongodb@2.2.5 --save

答案 1 :(得分:6)

对于MongoDB本机NodeJS驱动程序3.0版本的人员:

在MongoDB本机NodeJS驱动程序的2.x版本中,您将获取数据库对象作为连接回调的参数:

MongoClient.connect('mongodb://localhost:27017/blog', (err, db) => {
  // Database returned
});

根据3.0的changelog,你现在得到一个包含数据库对象的客户端对象:

MongoClient.connect('mongodb://localhost:27017', (err, client) => {
  // Client returned
  var db = client.db('blog');
});

原始答案:https://stackoverflow.com/a/47662979/2272082

答案 2 :(得分:1)

使用此功能进行检查,可能会帮助您更接近需要的解决方案。

const url = 'mongodb://localhost:27017/learnyoumongo'

var mongo = require('mongodb').MongoClient

mongo.connect(url, function(err, client) {
      if(err) {
         throw err;
      }
      var collection = client.db('learnyoumongo').collection('parrots');
        collection.find({
          age : {
            $gt : +process.argv[2]
          }
        }).toArray(function(err, documents) {
        console.log(documents)
        client.close()
   })
})