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

添加family:4解决Mongoose连接MongoDB失败问题原因咨询

为什么添加family: 4能解决MongoDB本地连接问题?

问题场景

此前可正常连接本地MongoDB的代码近期出现连接错误,在连接配置中添加family: 4属性后,连接恢复正常。

报错时的代码

const mongoose = require('mongoose');
require('dotenv').config();

exports.dbConnect = () => {
    mongoose.connect("mongodb://localhost:27017/cloudinaryEntry", {
        useNewUrlParser : true,
        useUnifiedTopology : true,
    })
    .then( () => console.log("Database connected successfully"))
    .catch( (error) => console.log("Error in connected database", error));
}

修复后的代码

const mongoose = require('mongoose');
require('dotenv').config();
exports.dbConnect = () => {
    mongoose.connect("mongodb://localhost:27017/cloudinaryEntry", {
        useNewUrlParser : true,
        useUnifiedTopology : true,
        family : 4
    })
    .then( () => console.log("Database connected successfully"))
    .catch( (error) => console.log("Error in connected database", error));
}

原因说明

family: 4是MongoDB驱动的连接配置项,作用是强制驱动仅使用IPv4协议建立连接,而非默认的自动尝试IPv6优先、再降级IPv4的逻辑。

你的连接失败本质是:本地环境中localhost的DNS解析优先返回了IPv6地址(如::1),但你的MongoDB服务并未监听IPv6端口,导致驱动尝试用IPv6连接时无法建立会话。添加family:4后,驱动会直接使用IPv4的127.0.0.1去连接MongoDB服务,避开了IPv6解析的问题,因此连接成功恢复。

这类问题通常和系统DNS配置变更、MongoDB服务关闭IPv6监听、本地网络环境调整有关。

内容的提问来源于stack exchange,提问作者Shriyansh Kesharwani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:45:13