注册

详解MongoDB的close()函数:关闭当前客户端对象

MongoDB的close()函数作用及使用方法

1. close()函数作用

MongoDB中的close()函数用于关闭一个数据库连接。关闭连接后,之前建立的任何游标都将无法使用。在Node.js中,所有的MongoDB操作都是异步执行的,因此在进行完所有数据库操作之后,最好手动关闭数据库连接。

2. close()函数使用方法

在Node.js中,可以通过MongoDB的官方驱动程序mongodb来使用close()函数。close()函数可以在MongoClient对象、Connection对象中使用。下面是close()函数的使用方法:

2.1 在MongoClient对象中使用close()函数

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/mydb;

MongoClient.connect(url, function (err, db) {
  if (err) throw err;
  console.log("数据库已连接!");
  // 数据库操作
  // ...
  // 手动关闭数据库连接
  db.close();
});

2.2 在Connection对象中使用close()函数

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/mydb;

MongoClient.connect(url, function (err, db) {
  if (err) throw err;
  console.log("数据库已连接!");
  const collection = db.collection('users');
  collection.find({}).toArray(function (err, docs) {
    if (err) throw err;
    console.log(docs);
    // 手动关闭数据库连接
    db.close();
  });
});

3. close()函数使用示例

下面提供两个例子来说明close()函数的使用方法:

3.1 例子1:通过close()函数关闭MongoDB数据库连接

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/mydb;

MongoClient.connect(url, function (err, db) {
  if (err) throw err;
  console.log("数据库已连接!");
  // 在这里执行一些数据库操作
  // ...
  // 手动关闭连接
  db.close(function (err) {
    console.log("数据库已关闭!");
  });
});

3.2 例子2:关闭failed to connect之后的连接

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/mydb;

MongoClient.connect(url, function (err, db) {
  if (err) throw err;
  console.log("数据库已连接!");
  // 在这里执行一些数据库操作
  // ...
  // 处理failed to connect错误
  db.on('error', function (err) {
    console.log("跟数据库的连接被中断!" + err.message);
    db.close(function (err) {
      console.log("数据库已关闭!");
    });
  });
});

如果与数据库的连接因网络故障断开,会在控制台上输出 "跟数据库的连接被中断!",然后通过close()函数关闭数据库连接。

以上就是MongoDB的close()函数的完整攻略。