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

使用Node.js和MongoDB按去重productId批量查询集合文档实现问题

实现动态批量查询的方法

核心逻辑

只需要两步就能完成硬编码内容的替换:

  1. 从req.bidder.myBids数组中提取所有productId字段,再做去重处理
  2. 将去重后的数组替换$in后的硬编码内容即可

具体代码实现

我们可以用Set结构实现快速去重,代码如下:

var agencyId = req.body.agencyId;

if (!validate.STRING(agencyId)) {
    res.apiError(messages.server.invalid_request);
} else {
    // 提取所有productId并去重
    const uniqueProductIds = [...new Set(req.bidder.myBids.map(bid => bid.productId))];
    
    // 可选:增加空数组校验,避免查询返回所有产品
    if (uniqueProductIds.length === 0) {
        return res.json([]);
    }

    dbProduct.find({
        productId: {$in: uniqueProductIds}
    }).then(dbRes => { 
        console.log(dbRes);
        // 输出JSON格式结果
        res.json(dbRes);
    })
}

代码说明

  • req.bidder.myBids.map(bid => bid.productId):遍历出价数组,提取所有productId,生成一个仅包含productId的数组
  • new Set():利用Set结构的特性自动去除重复值
  • 扩展运算符[... ]将Set结构转回普通数组,可直接传入MongoDB的$in查询条件中

内容的提问来源于stack exchange,提问作者Orange Juice Jones

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:45:04