如何编写Spring Mongo数据代码进行聚合查询

时间:2019-02-20 14:37:18

标签: spring mongodb spring-data-mongodb

我有一个类似

的查询
 db.getCollection('myCollection').aggregate([ 
            {$match : { "iPid" : "1234"}},
            {$group : {_id : "$fileName",
                            name: { $addToSet: "$name" },
                            files: { $addToSet: "$fileName" },
                            inputRowCount:{ $sum: 1 },
                            success:{ "$sum" : {"$cond" : [ {"$eq" : ["$status", 0] }, 1 ,0 ] } },
                            fail:{ "$sum" : {"$cond" : [ {"$eq" : ["$status", 2] }, 1 ,0 ] } },
                            skip:{ "$sum" : {"$cond" : [ {"$eq" : ["$status", 1] }, 1 ,0 ] } }
                       }
            },
            {$sort:{idsl:-1}},
            { $unwind: '$name'},
            { $unwind: '$files'}
    ]);

需要为上述查询编写spring mongoTemplate.aggregate(..),如下所示

AggregateRequest aggregateRequest = new AggregateRequest();
    Aggregation agg = newAggregation(match(Criteria.where("iPid").is(1234)),
            group("fileName").count().as("inputRowCount").addToSet("name").as("idsl").addToSet("fileName").as("files").sum("..........?.......").as("success")...

... 上面的代码不是完整的代码,如何在聚合总和内编写条件运算。

0 个答案:

没有答案