Использование avg весной для агрегации проекта - PullRequest
0 голосов
/ 08 мая 2018

У меня приведенный ниже запрос работает так, как задумано в монго:

 db.test.aggregate([{$unwind: "$reports"}, {$project:  {reports: 1, avg: {$avg: "$reports.linesCount"}}}`])

Однако я не могу преобразовать это в Java с помощью Spring. Вы не можете запускать функции агрегирования, такие как avg, в ProjectionOperation, но это возможно в GroupOperation. Нет метода avg () вообще ProjectionOperation.

Aggregation aggregation = Aggregation.newAggregation( 
                Aggregation.unwind("$reports"), 
                Aggregation.group(Fields.fields("_id"))
                .avg("reports.linesCount").as("avg"));

Есть идеи, почему это может иметь место, когда это явно возможно в монго? Есть ли другой способ перевести мой запрос на Java?

1 Ответ

0 голосов
/ 08 мая 2018

Ваш запрос: {reports: 1, avg: {$avg: "$reports.linesCount"}}

агрегирует в поле reports.linesCount, но ваш Java-код пытается агрегировать на .avg("reports.processingTime")

Так что вы можете работать в неправильном поле. Проверьте ваш запрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...