Spring Mongo DB:根据具有嵌套数组的文档聚合文档输出

Spring Mongo DB:根据具有嵌套数组的文档聚合文档输出,spring,mongodb,spring-data,mongo-java-driver,Spring,Mongodb,Spring Data,Mongo Java Driver,系统在数据库中具有以下文档信息: { "systemName": "ABC", "systemUsageAttrs" : [ { "cpuUsage": 30, "memUsage": 40,

系统在数据库中具有以下文档信息:

{
   "systemName": "ABC",
    "systemUsageAttrs" : [
                          {
                           "cpuUsage": 30,
                           "memUsage": 40,
                           "isActive": false
                           },
{
                           "cpuUsage": 88.2,
                           "memUsage": 33.5,
                           "isActive": false
                           },
                           {
                           "cpuUsage": 66.3,
                           "memUsage": 79.5,
                           "isActive": true
                           },
                           {
                           "cpuUsage": 80.5,
                           "memUsage": 63,
                           "isActive": true
                           }
                         ]
}
我已经使用mongo java驱动程序尝试了延迟,下面是以下代码段:

List<Document> systemDetailsAL = sysUsageDetailsColl.aggregate(
                asList(
                        match(eq("systemName","ABC")),
                        unwind("$systemUsageAttrs"),
                        match(eq("systemUsageAttrs.isAcive",true)),
                        group("$_id", Accumulators.push("systemName","$systemName"),
                                Accumulators.push("systemUsageAttrs", "$systemUsageAttrs")),
                        project(Projections.fields(Projections.excludeId(), 
                                                Projections.include("systemName", "systemUsageAttrs")))
                        
                        )
                ).into(new ArrayList<Document>());
和第二份文件

{
    serverName: ABC, 
    systemUsageAttr: {
        cpuUSage: ttt, 
        memUsage: sss, 
        isActive:true
}}
是否可以使用聚合返回一个只有1个元素的列表,如下面给出的输出

{
    serverName: ABC, 
    systemUsageAttr: [
        {
         cpuUSage: xxx, 
         memUsage: yyy, 
         isActive:true
        },
        {
         cpuUSage: ttt, 
         memUsage: sss, 
         isActive:true
        }
}

感谢您的帮助或指点。

更改这两个阶段:

group("$_id", Accumulators.push("systemName","$systemName"),
              Accumulators.push("systemUsageAttrs", "$systemUsageAttrs")),
project(Projections.fields(Projections.excludeId(), 
        Projections.include("systemName", "systemUsageAttrs")))                
)
如下所示,以获得所需的结果:

group("$_id", Accumulators.push("systemUsageAttrs", "$systemUsageAttrs"), 
              Accumulators.first("systemName", "$systemName")), 
project(Projections.excludeId()))

请注意
累加器的用法。首先
(组聚合运算符)。

非常感谢@prasad\uz,这非常有效。我知道这与group有关,但正如我对mongo所知,所以不知道各种聚合操作符及其用法。
group("$_id", Accumulators.push("systemUsageAttrs", "$systemUsageAttrs"), 
              Accumulators.first("systemName", "$systemName")), 
project(Projections.excludeId()))