db.collection不是使用mongodb的函数

时间:2018-03-11 23:25:49

标签: node.js mongodb

我一直在尝试使用mongodb并插入一些数据,但是我收到了一个错误。 这是代码。

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('Users').insertOne({
    name: 'Andrew',
    age: 25,
    location: 'Philadelphia'
  }, (err, result) => {
    if (err) {
      return console.log('Unable to insert user', err);
    }

    console.log(result.ops);
  });

  db.close();
});

1 个答案:

答案 0 :(得分:3)

MongoDB的本机驱动程序已更改了.connect()方法在最近版本中为您提供的内容。

3.0

  

connectCallback(错误,客户端)

2.2

  

connectCallback(error,db)

这些是您在文档中定义(err, db) => { ... }回调的方式。

.connect() method为您提供MongoClient个实例。在连接地址中包含数据库名称至少似乎不会改变它。

您必须使用客户端.db() method来获取带有集合的Db个实例。

const dbName = 'TodoApp';

MongoClient.connect('mongodb://localhost:27017/', (err, client) => {
  if (err) { ... }

  let db = client.db(dbName);

  db.collection('Users')...;
});