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
相关产品推荐
相关产品推荐

