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

如何使用单条MongoDB命令将多个文档合并为单个键值对文档

实现方案

你可以使用MongoDB聚合管道直接查询得到目标结果,全程为只读操作,不会修改原集合数据,也无需写入其他集合,命令如下:

db.A.aggregate([
  // 将所有文档的s字段作为键、id字段作为值,聚合为统一的键值对数组
  {
    $group: {
      _id: null,
      kvPairs: {
        $push: {
          k: "$s",
          v: "$id"
        }
      }
    }
  },
  // 将键值对数组转换为单个目标对象,同时去掉默认返回的_id字段
  {
    $replaceRoot: {
      newRoot: { $arrayToObject: "$kvPairs" }
    }
  }
])

逻辑说明

  • $group 阶段指定_id: null会把集合内的所有文档聚合为同一组,用$push把每个文档的字段值组装为$arrayToObject要求的{k: 键名, v: 键值}格式数组
  • $arrayToObject 运算符可以直接把标准化的键值对数组转换为单个JSON对象
  • $replaceRoot 阶段会把转换得到的对象直接作为返回结果的根节点,不需要额外嵌套层级

内容的提问来源于stack exchange,提问作者Lucas Venezian Povoa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:21:01