Mongodb聚合的Java驱动程序表示

时间:2018-06-07 05:21:01

标签: java mongodb spring-data-mongodb

我有以下聚合,我无法弄清楚如何在Java / Springboot mongodb驱动程序中表示。

db.metric.aggregate([
{ $match: { "key.runid":1} },
 { "$project": {
    "data": {
      "$filter": {
        "input": { "$objectToArray": "$$ROOT.metricData" },
        "cond": { "$ne": [ "$$this.k", "_id" ] }
      }
    }
 }},
 { "$unwind": "$data" },
 { "$group": {
   "_id": "$data.k",
   "v": { "$avg": "$data.v" }
 }},
 { "$sort": { "_id": 1 } },
 { "$group": {
   "_id": null,
   "data": { "$push": { "k": "$_id", "v": "$v" } }
 }},
 { "$replaceRoot": { 
   "newRoot": { "$arrayToObject": "$data" }
 }}
])

我尝试了以下内容,但对此不熟悉我无法弄清楚如何为数据字段编写过滤器:

Aggregation aggregation = newAggregation(
                match(getCriteriaForMetricKey(keys)),
                project("data", ""));

有人可以帮助我。

0 个答案:

没有答案