web-dev-qa-db-ja.com

TypeError:db.closeは関数ではありません

MongoDbを使用する以下のNode.jsアプリケーションがあります。

var MongoClient = require('mongodb').MongoClient;

var demoPerson = { name:'John', lastName:'Smyth' };
var findKey = { name: 'John' };

MongoClient.connect('mongodb://127.0.0.1:27017/demo', { useNewUrlParser: true }, function(err, client) {
  const db = client.db('demo');
  if(err) throw err;
  console.log('Successfully connected');
  //console.log(db);

  var collection = db.collection('people');
  collection.insert(demoPerson, function(err, docs) {
    console.log('Inserted', docs[0]);
    console.log('ID:', demoPerson._id);

    collection.find(findKey).toArray(function(err, results) {
      console.log('Found results:', results);

      collection.remove(findKey, function(err, results) {
        console.log('Deleted person');

        db.close();
      });
    });
  });
});

実行すると、次のエラーが発生します。

TypeError: db.close is not a function

これが機能しない理由を理解できません。誰か助けてもらえますか?

10
runnerpaul

@Neil Lunnがコメントしたように、client.close()の代わりにdb.close()を使用する必要があります。

13
runnerpaul