如何正确关闭我的Mongo连接

时间:2019-02-06 14:47:19

标签: javascript node.js mongodb

我正在学习用于UI和API测试的javascript / node.js,因此我正忙于创建与mongo DB交互的API。

我编写了这个小js脚本,用两个数据集填充了我的数据库。

我的脚本可以正常运行,但是我注意到在mongo日志中,一旦完成,我需要关闭连接,但是我一直在努力寻找一个很好的例子来说明如何做到这一点或努力使用现有示例来适合我的脚本。

#! /usr/bin/node

//Require mongodb drivers
var mongodb = require("mongodb");

//Call test data to populate db
let movieList = require("./data/MovieList");
let actorList = require("./data/ActorList");

//Create MongoObj
var MongoClient = mongodb.MongoClient;

var url = "mongodb://localhost:27017";
const dbName = "MovieDatabase";

MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
  if (err) {
    console.log(`Error - unable to connect to mongodb ${err}`);
    process.exit(1);
  } else {
    console.log(`Connection Successful`);
  }

  var dbo = db.db(dbName);

  if (movieList.getAllMovies !== null) {
    createAndPopulateCollections(dbo, 'movies', movieList.getAllMovies)
  }

  if (actorList.getAllActors !== null){
    createAndPopulateCollections(dbo, 'actors', actorList.getAllActors)
  }

  //db.close();
})

function createAndPopulateCollections(dbo, collectionName, collectionObject) {

  dbo.createCollection(collectionName);

  dbo
    .collection(collectionName)
    .insertMany(collectionObject, function(err, result) {
      if (err) {
        console.log(`ERROR: ${err}`);
        process.exit(1);
      } else {
        console.log(`Success: ${result.insertedCount}`);
        process.exit(0);
      }
    });
}

我知道上述脚本可能存在很多问题!

1 个答案:

答案 0 :(得分:0)

如果您需要关闭集合,只需在函数末尾写上这一行

  

dbo.close();