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

使用Mongoose查询MongoDB文档返回空数组是什么原因?

问题排查及解决方案
  • 问题1:连接地址不匹配
    你明确说明数据存储在MongoDB Atlas云数据库中,但当前代码的连接地址是mongodb://alex:qwe@localhost:27017/dyma,指向的是本地运行的MongoDB实例,自然读取不到Atlas上存储的数据。请替换为MongoDB Atlas控制台提供的专属连接串,标准格式为mongodb+srv://<你的用户名>:<你的密码>@<集群标识>.mongodb.net/。
  • 问题2:数据库名大小写不匹配
    你实际的数据库名为Dyma(首字母大写),但连接串中写的是小写的dyma,MongoDB的库名在类Unix系统下大小写敏感,会被识别为两个不同的数据库,需要将连接串中的库名修改为和实际完全一致的Dyma。
  • 问题3:集合名映射不匹配
    Mongoose默认会将model()方法第一个参数转换为全小写复数形式作为查询的集合名,你代码里第一个参数传的是chapters,默认会查询名为chapters的集合,但你实际的集合名为Chapter(首字母大写、单数形式),二者完全不匹配,所以查询返回空。
    可以在定义模型时传入第三个参数,手动指定要查询的集合名,修改代码如下:
// 第三个参数直接填写你数据库中实际的集合名
const Chapters = mongoose.model("chapters", chapterSchema, "Chapter");

完成以上三处修改后重新运行代码,即可正常查询到集合内的4条文档。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 04:45:05