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

MongoDB如何用aggregation为group集合每条记录添加关联用户id列表

MongoDB聚合查询实现方案

完整聚合语句

直接在groups集合上执行如下聚合管道即可得到预期结果:

db.groups.aggregate([
  // 关联users集合匹配当前组对应的用户
  {
    $lookup: {
      from: "users",
      localField: "id",
      foreignField: "groups",
      as: "relatedUsers"
    }
  },
  // 提取用户id生成assignedTo字段,无匹配用户时自动为空数组
  {
    $addFields: {
      assignedTo: "$relatedUsers.id"
    }
  },
  // 移除临时关联字段
  {
    $unset: "relatedUsers"
  }
])

执行逻辑说明

  • $lookup阶段默认支持匹配数组类型的外键,会自动筛选users集合中groups数组包含当前组id的所有用户,存入临时字段relatedUsers
  • 直接取relatedUsers.id即可得到所有关联用户的id数组,无匹配用户时relatedUsers为空数组,对应assignedTo自动为空数组,无需额外做空值处理
  • 最后移除不需要的临时关联字段即可得到完全符合要求的返回结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:18:01