У меня есть база данных Mongo, и я сохранил даты в виде строк. Для каждого документа у меня есть поле с именем "creationdate" и поле с именем "creationdate". Формат даты - «ГГГГ-ММ-дд» (например, «2011-12-18»). Даже я могу выполнить простое агрегирование, например, moreThan, moreThanEqual, я не могу найти разницу в датах, которую я должен найти, чтобы вычислить среднюю разницу дней между завершением и датой создания.
Приведенный выше запрос мне нужно написать при весенней загрузке с MongoTemplate, если это возможно.
Я пытаюсь что-то подобное, но это не работает.
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.match(Criteria.where("creationdate").gte(date1).lte(date2).andOperator(Criteria.where("completiondate").ne(""))),
Aggregation.project("servicerequesttype").and(DateOperators.DateFromString.fromStringOf("completiondate").withFormat("%Y-%m-%d")).minus(DateOperators.DateFromString.fromStringOf("creationdate").withFormat("%Y-%m-%d")).as("diff"),
Aggregation.group("servicerequesttype").avg("diff").as("average")
);
date1, date2 - строки типа «2011-01-01»