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

MongoDB v4.0中MongoClient.isConnected()消失?如何判断连接状态

MongoDB 4.0+ 判断连接状态的替代方案

MongoDB Node.js 驱动从4.0版本开始正式移除了MongoClient实例上的isConnected()方法,原方法的能力可通过以下两种方案实现:


方案1:发送ping命令校验(生产环境推荐)

该方案会实际向MongoDB服务器发送心跳请求,可真实反映当前连接的可用状态,无特殊需求优先使用该方式:

import { MongoClient } from "mongodb";

async function isMongoConnected(client: MongoClient): Promise<boolean> {
  try {
    await client.db().admin().ping();
    return true;
  } catch (error) {
    return false;
  }
}

// 调用示例
const client = await MongoClient.connect(uri, options);
const connectedStatus = await isMongoConnected(client);

方案2:读取本地拓扑状态(轻量快速校验)

该方案仅读取驱动本地维护的连接拓扑状态,不会发起网络请求,适合快速校验、本地调试场景使用:

import { MongoClient } from "mongodb";

function isMongoConnected(client: MongoClient): boolean {
  return !!client.topology && client.topology.isConnected();
}

// 调用示例
const client = await MongoClient.connect(uri, options);
const connectedStatus = isMongoConnected(client);

补充说明

  • 若你是在await MongoClient.connect执行完成后立刻判断状态,只要该方法未抛出异常,默认连接已建立成功,无需额外做连接校验
  • 驱动默认已开启自动重连能力,连接断开后会自动尝试重建连接,无需业务层频繁轮询判断状态

内容的提问来源于stack exchange,提问作者Jolan B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:09:04