You need to enable JavaScript to run this app. 在MongoDB中使用聚合查询获取所有文档spec对象的全部不重复键
优惠活动
大模型
产品
解决方案
定价
更多

在MongoDB中使用聚合查询获取所有文档spec对象的全部不重复键

MongoDB聚合提取spec字段所有去重键方案

实现逻辑

利用MongoDB内置的$objectToArray操作符将嵌套对象转换为键值对数组,再拆分、去重即可得到所有不重复的键名。

完整聚合代码

db.你的集合名.aggregate([
  // 将spec对象转换为[{k: '键名', v: '对应值'}]结构的数组
  {
    $project: {
      specKeyList: { $objectToArray: "$spec" }
    }
  },
  // 把数组中的每一项拆分为独立记录
  { $unwind: "$specKeyList" },
  // 全局收集所有键名,自动去重
  {
    $group: {
      _id: null,
      result: { $addToSet: "$specKeyList.k" }
    }
  },
  // 可选:对结果数组按字母顺序排序,不需要可删除该阶段
  {
    $project: {
      _id: 0,
      result: { $sortArray: { input: "$result", sortBy: 1 } }
    }
  }
])

输出示例

执行后得到的结果结构如下,直接取result字段即可得到你需要的数组:

{ "result" : [ "abc", "bcd", "cde", "efg", "ghi" ] }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 14:00:03