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

如何查询关联指定用户的Product数据?获取用户专属产品列表

解决方案

要实现只返回指定用户创建的产品,核心是给Product.find()添加用户ID匹配的查询条件,具体分两种常见场景处理:

场景1:通过认证中间件获取当前登录用户ID(比如JWT、Session)

如果你的项目已经实现用户认证(比如JWT解析后把用户信息挂载到req.user),直接用req.user._id作为查询条件:

router.get('/customerproduct', async (req, res) => {
  try {
    // 只查询当前登录用户的产品
    const posts = await Product.find({ user_id: req.user._id })
                  .populate("user_id");
    res.status(200).json(posts);
  } catch (error) {
    res.status(404).json({ message: error.message });
  }
});

场景2:通过URL参数传递目标用户ID

如果需要查询任意指定用户的产品(比如管理员查看其他用户的产品),可以把用户ID放在URL参数里:

第一步:修改路由,添加userId参数

// 路由改为带userId参数的形式
router.get('/customerproduct/:userId', async (req, res) => {
  try {
    const { userId } = req.params;
    // 匹配传入的用户ID对应的产品
    const posts = await Product.find({ user_id: userId })
                  .populate("user_id");
    res.status(200).json(posts);
  } catch (error) {
    res.status(404).json({ message: error.message });
  }
});

第二步:调用示例

前端请求时带上用户ID,比如:GET /customerproduct/60d21b4667d0d8992e610c85

关键说明

  • Product.find({ user_id: 目标ID }):MongoDB的查询语法,通过user_id字段匹配,只返回该用户创建的产品
  • populate("user_id"):保持原有的关联用户信息查询逻辑,不会影响过滤效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:10:33