db.collection 不是使用 mongodb 的函数

sat*_*jha 2 mongodb node.js

我一直在尝试使用 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();
});
Run Code Online (Sandbox Code Playgroud)

Jon*_*ski 6

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

3.0

连接回调(错误,客户端)

2.2

连接回调(错误,数据库)

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


.connect()方法为您提供了一个MongoClient实例。在连接地址中包含数据库名称至少不会改变这一点。

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

const dbName = 'TodoApp';

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

  let db = client.db(dbName);

  db.collection('Users')...;
});
Run Code Online (Sandbox Code Playgroud)