Node.js MongoClient和我们在MongoClient.connect()方法的回调中得到的客户机对象之间有什么区别

Node.js MongoClient和我们在MongoClient.connect()方法的回调中得到的客户机对象之间有什么区别,node.js,mongodb,node-mongodb-native,Node.js,Mongodb,Node Mongodb Native,在上面的代码中,我有一个MongoClient对象,我调用了MongoClient.connect()方法将我的节点应用程序与本地数据库服务器连接起来。在回调中,我得到了另一个用于执行数据库操作的客户机对象。我很难区分这两个对象:MongoClient和client(从回调中)MongoClient是从mongodb包导入的类的名称 MongoClient.connect()是该类的静态方法。它创建MongoClient(您的客户端对象)的实际实例,并将其传递给回调函数 你真的做不了多少ẁith

在上面的代码中,我有一个MongoClient对象,我调用了MongoClient.connect()方法将我的节点应用程序与本地数据库服务器连接起来。在回调中,我得到了另一个用于执行数据库操作的客户机对象。我很难区分这两个对象:MongoClient和client(从回调中)

MongoClient
是从
mongodb
包导入的类的名称

MongoClient.connect()
是该类的静态方法。它创建
MongoClient
(您的
客户端
对象)的实际实例,并将其传递给回调函数

你真的做不了多少ẁith
MongoClient
,因为它只是实际客户机的一个表示/一个类。它不是一个可以调用任何方法的实例


只需调用
MongoClient.connect
,您就可以得到该类的一个实例,您可以实际使用它来处理MongoDB。

它只是
初始化的db对象

你应该调查一下。Mongo团队有详细的解释

  • MongoClient:用于通过URL进行连接
  • mongoClient(客户端)作为参数:如果连接成功,将返回DB对象
  • const { MongoClient, ObjectID } = require('mongodb');
    const debug = require('debug')('mongodb-connect');
    
    MongoClient.connect('mongodb://localhost:27017/TodoApp', { useNewUrlParser: true }, (err, client) => {
      if (err) return debug(`Unable to connect to the server ${err}`);
      debug('Connected to the server');
      const db = client.db('TodoApp');
      db.collection('Todos').insertOne({
        text: 'Something to do',
        completed: false,
      }, (error, result) => {
        if (err) return debug(`There was a problem while inserting, ${error}`);
        debug(`Data inserted successfully ${JSON.stringify(result.ops, undefined, 2)}`);
      });
      client.close();
    });