sql >> Base de Datos >  >> NoSQL >> MongoDB

db.collection no es una función cuando se usa MongoClient v3.0

Para personas con la versión 3.0 del controlador NodeJS nativo de MongoDB:

(Esto se aplica a las personas con "mongodb":"^3.0.0-rc0", o una versión posterior en package.json, que desean seguir usando la última versión).

En la versión 2.x del controlador NodeJS nativo de MongoDB, obtendría el objeto de la base de datos como argumento para la devolución de llamada de conexión:

MongoClient.connect('mongodb://localhost:27017/mytestingdb', (err, db) => {
  // Database returned
});

De acuerdo con el registro de cambios para 3.0, ahora obtiene un objeto de cliente que contiene el objeto de la base de datos en su lugar:

MongoClient.connect('mongodb://localhost:27017', (err, client) => {
  // Client returned
  var db = client.db('mytestingdb');
});

El close() El método también se ha movido al cliente. Por lo tanto, el código de la pregunta se puede traducir a:

MongoClient.connect('mongodb://localhost', function (err, client) {
  if (err) throw err;

  var db = client.db('mytestingdb');

  db.collection('customers').findOne({}, function (findErr, result) {
    if (findErr) throw findErr;
    console.log(result.name);
    client.close();
  });
});