Рассмотрим следующую зависимость:
org.springframework.boot.spring-boot-starter-data-mongodb-reactive
(2.0.2.RELEASE)
У меня есть коллекция, из которой мне нужно получить различные значения,Однако, когда я использую метод запроса для получения Flux
различных значений, он не работает.Я определил следующий метод запроса, используя закрытую проекцию IdentifierOnly
:
@Repository
public interface FooBarRepository extends ReactiveCrudRepository<FooBar, String> {
Flux<IdentifierOnly> findDistinctByFooAndBar(String foo, String bar);
}
Класс документа / коллекции:
@Document
public class FooBar {
private String identifier; // not unique
private String foo;
private String bar;
// extra fields
// getters and setters
}
Закрытая проекция:
public interface IdentifierOnly {
getIdentifier();
}
Однако запрос, который выполняется и регистрируется ReactiveMongoTemplate
, выглядит следующим образом: find using query: { "foo" : "xxxx", "bar" : "yyyy" } fields: Document{{identifier=1}} for class: class org.example.models.FooBar in collection: fooBar
и не возвращает каких-либо результатов, так как содержит дубликаты.
Что я делаю неправильно?Как я могу получить различные значения (идентификаторы) на основе конкретного запроса?