面试题答案
一键面试MongoDB获取当前数据库连接基本统计信息的命令
- 在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应用中利用官方驱动获取这些信息
- 安装依赖:
首先确保安装了
mongodb
官方驱动。可以通过npm install mongodb
命令进行安装。 - 代码示例:
在上述代码中: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
命令。 - 最后打印出连接相关的统计信息,并在操作完成后关闭连接。
- 首先引入