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

如何从MongoDB中查询当前登录用户自己发布的JSON数据

正确实现逻辑

原有代码的问题

  • 未添加auth中间件:GET接口没有引入和POST接口一致的JWT校验中间件,无法获取到登录用户信息,req.user会返回undefined
  • 查询方法误用:findById的作用是匹配Property数据自身的_id主键,不能用来筛选关联的用户ID,且你需要拉取的是当前用户的所有Property列表,应该使用find方法
  • 查询条件错误:没有指定正确的过滤规则匹配Property中存储的关联用户ID
  • 错误处理缺失响应:捕获异常后仅打印日志,没有返回对应的错误响应给调用方

修正后的完整代码

// 拉取当前登录用户创建的所有Property数据
router.get('/', auth, async (req, res) => {
  try {
    // 过滤条件:Property关联的user._id等于当前登录用户ID
    const properties = await Property.find({ 'user._id': req.user._id });
    res.send(properties);
  } catch (ex) {
    console.error(ex.message);
    // 返回500错误响应
    res.status(500).send('服务器内部错误,查询Property列表失败');
  }
});

代码说明

  1. 接口路径前添加了auth中间件,和POST逻辑保持一致,JWT校验通过后才会执行后续逻辑,同时req.user会被赋值为当前登录用户的信息
  2. 使用find方法查询所有满足条件的Property数据,过滤规则为'user._id'等于当前登录用户的ID,匹配POST接口存储的关联用户字段结构
  3. 异常捕获逻辑中新增了500错误响应,方便前端感知接口报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:36:01