У меня есть коллекция документов, в которой каждый уникальный templateId может иметь несколько версий:
@Document(collection = "templates")
public class TemplateEntity {
@Id
private String id;
private String templateId;
private int version;
}
Есть ли простой способ получить только последние версии для каждого templateId с помощью простого метода интерфейса MongoRepository?
Вот мой текущий программный обходной путь, чтобы объяснить, что я пытаюсь сделать, и мой вспомогательный метод запроса для сортировки списка для моих нужд:
@GetMapping("/list")
public List<TemplateEntity> listTemplates() {
List<TemplateEntity> filtered = new ArrayList<>();
List<TemplateEntity> allTemplates = repository.findAllByOrderByTemplateIdAscVersionDesc();
String templateId = "";
for (TemplateEntity tpl : allTemplates) {
if (!tpl.getTemplateId().equals(templateId)) {
filtered.add(tpl);
templateId = tpl.getTemplateId();
}
}
return filtered;
}