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

Mongoose无法连接本地MongoDB,或连接后未生成集合求助

问题排查与修复方案

你的代码逻辑本身没问题,但可能因为以下几个原因导致数据库/集合未创建:

  • Mongoose v6+ 已移除 useNewUrlParser 和 useUnifiedTopology 这两个选项,继续使用可能引发兼容性问题
  • 脚本执行完成后立即退出,Mongoose 可能还没完成文档写入操作
  • 未捕获 fruit.save() 过程中的错误,无法定位写入失败原因

修改后的代码

const mongoose = require('mongoose')

async function main() {
  try {
    // 移除过时连接选项,添加连接成功日志
    await mongoose.connect("mongodb://localhost:27017/fruitsDB");
    console.log("成功连接到数据库");

    const fruitSchema = new mongoose.Schema({
      name: String,
      rating: Number,
      review: String
    });
  
    const Fruit = mongoose.model("Fruit", fruitSchema);
  
    const fruit = new Fruit ({
      name: "Apple",
      rating: 7,
      review: "Pretty solid"
    });
  
    await fruit.save();
    console.log("文档保存成功");

    // 显式关闭连接,确保写入操作完成后再退出
    await mongoose.disconnect();
    console.log("数据库连接已关闭");
  } catch (err) {
    console.error("操作失败:", err);
  }
}

main();

额外排查要点

  • 确认本地 MongoDB 服务处于运行状态(可通过 mongod 命令启动)
  • 检查 Mongoose 与 MongoDB 服务器的版本兼容性(例如 MongoDB 5.x 搭配 Mongoose 6.x+)
  • 集合名称会被 Mongoose 自动转为复数形式,查看时应找 fruits 而非 Fruit

内容的提问来源于stack exchange,提问作者Shubham Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:45:43