Mongo Compass中如何修复聚合Group阶段的累加器对象错误?
修复MongoDB聚合管道$group阶段的错误
错误原因
在$group聚合阶段中,除了_id字段外,所有输出字段必须通过累加器操作符(如$addToSet、$sum等)定义,你直接赋值"$productId"不符合语法规范,因此触发了The field distinctProductIds must be an accumulator object错误。
正确的第二阶段配置
将distinctProductIds字段改为使用$addToSet累加器,它会自动收集去重后的productId值:
{ _id: null, distinctProductIds: { $addToSet: "$productId" } }
额外优化建议
如果你的productId字段本身不是数组类型,第一阶段的$unwind是多余的——直接使用上述$group阶段就能得到所有唯一的productId数组,这样可以减少管道的计算开销。
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

