在nodejs操作mongodb显示数据库连接成功之后突然报了db.collection is not a function错误,引起这个错误的原因是nodejs获取数据库表的API写法不对。(正如NodeJS | 入门篇 (一)提到的,不同版本的API,使用规范有差别)。修改方式如下:
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/testdb';
var insertData = function(db, callback) {
//3.0新写法
var db = db.db("testdb");
var collection = db.collection('test_table_01');
//var collection = db.collection('users');//将这句改成上面两句
var data = [{_id:7,"name":'rose',"age":21},{_id:8,"name":'mark',"age":22}];
collection.insert(data, function(err, result) {
if(err)
{
console.log('Error:'+ err);
return;
}
callback(result);
});
}
MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("连接成功!");
insertData(db, function(result) {
console.log(result);
db.close();
});
});