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

MongoDB去重分组查询:提取指定条件下不重复的potential值

MongoDB查询方案:提取指定条件下不重复的potential字段值

需求说明

筛选集合中val字段为true的文档,提取其中不重复的potential字段值,并整理为{"values": [100, 200]}的格式。

方案一:使用聚合管道(直接输出目标格式)

通过聚合管道可以一步到位生成符合要求的结果:

db.人员集合.aggregate([
  // 过滤出val为true的文档
  { $match: { val: true } },
  // 聚合并收集不重复的potential值
  { $group: { _id: null, values: { $addToSet: "$potential" } } },
  // 移除默认的_id字段
  { $project: { _id: 0 } }
])

步骤解释

  • $match:精准筛选出包含val: true的文档,减少后续处理的数据量;
  • $group:将所有符合条件的文档归为一组,利用$addToSet自动去重并收集potential值到values数组;
  • $project:移除聚合阶段生成的_id字段,最终输出完全匹配你期望的格式。

方案二:先取去重值再格式化(适合快速验证)

如果需要分步操作,可以先用distinct方法获取去重值,再包装成目标格式:

// 获取符合条件的不重复potential值数组
const distinctPotentials = db.人员集合.distinct("potential", { val: true });
// 整理为指定格式
{ values: distinctPotentials }

结果验证

针对你提供的示例数据,两种方案都会输出:

{"values" : [100, 200]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:32:54