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

Node.js根据请求ID查询MongoDB记录返回空数组的解决方法

问题定位

查询返回空数组由两处代码错误直接导致:

  • 多余的字符拼接:代码中手动给请求传入的accountId值前后拼接了双引号,将原本的字符串a1处理为"a1",和集合中存储的无多余符号的字符串值不匹配。
  • 查询字段名不匹配:查询条件写为{id}是ES6属性简写,等价于查询条件{ id: 处理后的参数值 },但集合中存储的对应字段名为accountId,字段名错误无法命中任何记录。
修正代码

移除多余的引号拼接逻辑,将查询字段名改为集合实际的accountId字段即可,修正后的实现如下:

exports.getById = async (req) =>{
   const targetAccountId = req.body.accountId;
   const accountRecords = await db.collection('account-details').find({
     accountId: targetAccountId
   }).toArray();
   return accountRecords
}
效果验证

接口传入请求体{"accountId":"a1"}时,实际执行的查询条件为{accountId: "a1"},和集合内存储的记录字段、值完全匹配,可正常返回对应文档。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 03:48:09