MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

db.collection não é uma função ao usar o MongoClient v3.0

Para pessoas na versão 3.0 do driver NodeJS nativo do MongoDB:


(Isto é aplicável a pessoas com "mongodb":"^3.0.0-rc0", ou uma versão posterior em package.json, que desejam continuar usando a versão mais recente.)



Na versão 2.x do driver NodeJS nativo do MongoDB, você obteria o objeto de banco de dados como um argumento para o retorno de chamada de conexão:
MongoClient.connect('mongodb://localhost:27017/mytestingdb', (err, db) => {
  // Database returned
});

De acordo com o changelog para 3.0, agora você obtém um objeto de cliente contendo o objeto de banco de dados:
MongoClient.connect('mongodb://localhost:27017', (err, client) => {
  // Client returned
  var db = client.db('mytestingdb');
});

O close() O método também foi movido para o cliente. O código na pergunta pode, portanto, ser traduzido para:
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();
  });
});