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

MongoDB查询:按数组R的筛选条件对对应索引的数组D元素求和

MongoDB 按索引匹配数组元素求和实现方案

实现思路

由于R和D数组长度完全一致,我们可以先将两个数组按索引位置一一配对,再过滤出R值小于9的配对项,最后累加对应D值即可得到目标结果。

完整查询语句

假设你操作的集合名称为your_collection,聚合查询代码如下:

db.your_collection.aggregate([
  // 若需要筛选特定文档,可在此处添加$match阶段:{ $match: { _id: 你的文档ID } }
  {
    $project: {
      sumD: {
        $sum: {
          $map: {
            input: {
              $filter: {
                input: { $zip: { inputs: ["$R", "$D"] } },
                cond: { $lt: ["$$this.0", 9] }
              }
            },
            in: "$$this.1"
          }
        }
      }
    }
  }
])

执行逻辑说明

  • $zip操作符会将R、D两个数组按索引配对,生成结构为[[1,40], [10,70], [4,90], [6,100], [20,50]]的临时数组
  • $filter会过滤临时数组,仅保留R值(子数组第0位)小于9的项,过滤后得到[[1,40], [4,90], [6,100]]
  • $map提取过滤结果中所有子数组的第1位(即对应的D值),最后通过$sum求和,输出结果为230,和预期一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:15:04