当我运行此代码时,它出现错误' 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!')
}
});
});

答案 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');
});
答案 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()
})
})