MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

db.collection non è una funzione quando si utilizza MongoClient v3.0

Per le persone con la versione 3.0 del driver NodeJS nativo MongoDB:

(Questo è applicabile alle persone con "mongodb":"^3.0.0-rc0" o una versione successiva in package.json, che vogliono continuare a usare l'ultima versione.)

Nella versione 2.x del driver NodeJS nativo MongoDB avresti ottenuto l'oggetto database come argomento per il callback di connessione:

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

Secondo il log delle modifiche per 3.0 ora ottieni un oggetto client contenente invece l'oggetto database:

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

Il close() anche il metodo è stato spostato nel client. Il codice nella domanda può quindi essere tradotto in:

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();
  });
});