关于mongoose返回的数据为空

在使用Node.js、Express和MongoDB开发后端接口时,遇到Mongoose自动将集合名转换为复数形式的问题,导致数据无法正确读取。本文详细描述了这一现象,并提供了修改模型名称或在数据库中直接使用复数形式的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近用 node + express + mongoDB 去写后端接口的时候,发现一个差异的问题:
        比如我 DB 里面写了个集合叫 alertmsg,当我写 get 接口的时候,返回的是一个空数组: []

model 如下:

接口路由如下:

Google 很久也没找出答案,明明 DB 里面已经写入数据了,单当我试了一下 post 请求时,意外发现 DB 多了一个 collection:alertmsgs。(Fuck me????黑人问号),再去把原来的 model 改成 alertmsgs 就能获取了。
去官网看了下,发现 mongoose.prototype.model(),会自动给 collection的 name 末尾添加 s,如果没有定义的话。

 

所以解决办法就是如上图所述,或者在写 DB 的时候,给 collection 加上 s。
(Sonovabitch!)

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值