Я новичок в написании агрегатных запросов в Mongo DB + Spring
Сценарий: Мы храним BirthDate (Jjava.uti.Date) в dong Монго, который был сохранен как дата ISO.Сейчас мы пытаемся найти записи, которые соответствуют только дням и месяцам.Так что мы можем сопоставить объект из списка.
Я прошел несколько решений, и вот способ, которым я пытаюсь, но это дает мне нулевой набор записей.
Aggregation agg = Aggregation.newAggregation(
Aggregation.project().andExpression("dayOfMonth(birthDate)").as("day").andExpression("month(birthDate)")
.as("month"),
Aggregation.group("day", "month"));
AggregationResults<Employee> groupResults = mongoTemplate.aggregate(agg, Employee.class, Employee.class);
Я также попытался применить запрос с помощью Criteria, но это также дает мне объект Employee со всем нулевым содержимым.
Aggregation agg = Aggregation.newAggregation(Aggregation.match(Criteria.where("birthDate").lte(new Date())), Aggregation.project().andExpression("dayOfMonth(birthDate)").as("day").andExpression("month(birthDate)")
.as("month"),
Aggregation.group("day", "month"));
AggregationResults<Employee> groupResults = mongoTemplate.aggregate(agg, Employee.class, Employee.class);
Я должен упустить какую-то важную вещь, которая дает мне эти нулевые данные.
Дополнительная информация : в объекте сотрудника есть только дата рождения (Дата) и адрес электронной почты (строка)