Вот пример того, что вы можете сделать, используя mongoTemplate
.Я еще не проверял это.
Document multiplyTime = new Document("$multiply", Arrays.asList("$timestamp", 1000));
ProjectionOperation project1 = project("status").and(ConvertOperators.ToDate.toDate(multiplyTime)).as("date");
ProjectionOperation project2 = project().and(DateOperators.Hour.hour("date")).as("hour");
GroupOperation group = group("hour").count().as("count");
mongoTemplate.aggregate(Aggregation.newAggregation(project1, project2, group),"yourCOllection", Document.class);