MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

db.collection n'est pas une fonction lors de l'utilisation de MongoClient v3.0

Pour les utilisateurs de la version 3.0 du pilote NodeJS natif de MongoDB :

(Cela s'applique aux personnes avec "mongodb":"^3.0.0-rc0", ou une version ultérieure dans package.json, qui souhaitent continuer à utiliser la dernière version.)

Dans la version 2.x du pilote NodeJS natif de MongoDB, vous obtiendriez l'objet de base de données en tant qu'argument du rappel de connexion :

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

Selon le journal des modifications de la version 3.0, vous obtenez maintenant un objet client contenant l'objet de la base de données à la place :

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

Le close() La méthode a également été déplacée vers le client. Le code dans la question peut donc être traduit en :

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