You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyMongo MongoClient:如何查看当前打开的连接数?

如何查看MongoClient某一时刻的已打开连接数?

当然可以查看特定MongoClient在某一时刻的已打开连接数,不同语言的MongoDB驱动提供了不同的实现方式,以下是主流驱动的操作方法:

Java 驱动

通过MongoClient的指标获取方法可以直接拿到连接池的实时数据:

MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
ConnectionPoolMetrics poolMetrics = mongoClient.getMetrics().getConnectionPoolMetrics();

// 遍历每个服务器的连接池指标
for (ConnectionPoolMetric metric : poolMetrics) {
    System.out.println("目标服务器: " + metric.getServerAddress());
    System.out.println("已打开并借出的连接数: " + metric.getCheckedOutConnections());
    System.out.println("连接池空闲连接数: " + metric.getAvailableConnections());
}

也可以通过注册ConnectionPoolListener来监听连接的创建、借出、归还等事件,自定义统计逻辑。

Python PyMongo 驱动

直接调用MongoClient的stats()方法,返回的结果中包含当前客户端的已打开连接数:

from pymongo import MongoClient

client = MongoClient("mongodb://localhost:27017")
client_stats = client.stats()
print(f"已打开连接数: {client_stats['open_connections']}")

Node.js MongoDB 驱动

通过客户端的拓扑结构获取连接池实例,进而查看已打开的连接数量:

const { MongoClient } = require('mongodb');

async function queryOpenConnections() {
    const uri = "mongodb://localhost:27017";
    const client = await MongoClient.connect(uri);
    
    // 获取连接池内的活跃连接列表长度
    const openConnCount = client.topology.s.pool.connections.length;
    console.log(`已打开连接数: ${openConnCount}`);
    
    await client.close();
}

queryOpenConnections().catch(console.error);

补充:服务器端全局连接查看

如果你需要查看MongoDB服务器的全局连接情况(非特定客户端),可以执行服务器状态命令:

// 在Mongo Shell中执行
db.serverStatus().connections

返回结果中的current字段表示当前服务器的总活跃连接数。

内容的提问来源于stack exchange,提问作者Sandil Ranasinghe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 18:52:05