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

原生Mongo聚合管道对应的等效Spring聚合管道如何实现

问题根源

你当前实现多了多余投影步骤的核心原因是:group阶段没有显式指定固定值作为_id,Spring Data MongoDB默认将未指定_id的分组操作的_id设为null,才需要额外补充投影阶段修改_id的值。

正确等效实现

直接在分组阶段通过Aggregation.literal()指定常量作为分组_id即可完全对齐原生管道逻辑,无需额外投影:

Aggregation.newAggregation(
    Aggregation.match(Criteria.where("_id")
        .is("COLLECTIONS_META")),
    Aggregation.unwind("value"),
    // 分组时直接指定固定_id为字面量COLLECTION_NAMES
    Aggregation.group(Aggregation.literal("COLLECTION_NAMES"))
        .push("value.suffix")
        .as("value")
);

验证说明

上述代码转换为原生Mongo聚合管道后和你给出的原生查询完全一致,没有多余的投影步骤,执行结果完全相同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:45:05