Представление драйвера Java агрегации Mongodb - PullRequest
0 голосов
/ 07 июня 2018

У меня есть следующая агрегация, которую я не могу понять, как представлять в драйвере 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", ""));

Может кто-нибудь мне помочь.

...