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