MST

星途 面试题库

面试题:MongoDB连接统计信息获取方法之基础运用

在MongoDB中,简述通过哪些命令或方法可以获取到当前数据库连接的基本统计信息,如连接数等,并说明如何在Node.js应用中利用官方驱动获取这些信息?
33.0万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试

MongoDB获取当前数据库连接基本统计信息的命令

  1. 在MongoDB shell中
    • 获取服务器状态:使用db.serverStatus()命令。这个命令返回一个包含大量服务器状态信息的文档,其中connections字段包含了连接相关的统计信息。例如:
    var status = db.serverStatus();
    printjson(status.connections);
    
    其中status.connections会返回类似如下结构的信息:
    {
        "current": 3,
        "available": 497,
        "totalCreated": NumberLong(10)
    }
    
    • current表示当前打开的连接数。
    • available表示当前可用的连接数(如果使用了连接池)。
    • totalCreated表示自服务器启动以来创建的连接总数。

在Node.js应用中利用官方驱动获取这些信息

  1. 安装依赖: 首先确保安装了mongodb官方驱动。可以通过npm install mongodb命令进行安装。
  2. 代码示例
    const { MongoClient } = require('mongodb');
    
    async function getConnectionStats() {
        const uri = "mongodb://localhost:27017";
        const client = new MongoClient(uri);
    
        try {
            await client.connect();
            const adminDb = client.db('admin');
            const status = await adminDb.command({ serverStatus: 1 });
            console.log(status.connections);
        } catch (e) {
            console.error(e);
        } finally {
            await client.close();
        }
    }
    
    getConnectionStats();
    
    在上述代码中:
    • 首先引入MongoClient
    • 然后创建一个异步函数getConnectionStats,在函数内创建MongoClient实例并连接到MongoDB服务器。
    • 获取admin数据库(因为serverStatus命令需要在admin数据库上执行),并执行serverStatus命令。
    • 最后打印出连接相关的统计信息,并在操作完成后关闭连接。