Spring Boot + Webflux + MongoDB + несколько критериев поиска - PullRequest
0 голосов
/ 28 октября 2019

Я не могу найти какую-либо достоверную информацию о моей проблеме, поэтому мой пост здесь.

В моем сервисе используются Spring Boot, Webflux и Mongodb. Мой клиент в React имеет окно поиска, вы можете искать по нескольким полям. Есть ли возможность использовать, например, критерии поиска, например:

Query query = new Query();
query.addCriteria(Criteria.where("name").is("Eric"));

if(condition){
    query.addCriteria(Criteria.where("location").is("USA"));
}
List<User> users = mongoTemplate.find(query, User.class);

Может быть, я должен использовать, например, библиотеку Query DSL?

Пока я использую реактивный репозиторий:

public interface OfferRepository extends ReactiveMongoRepository<Offer, String> {

    @Query("{'properties': {'$in': ?0}}")
    Flux<Offer> findByPropertiesIds(List<String> propertiesId);

но я не знаю, как справиться с несколькими критериями поиска (некоторые из них могут быть необязательными).

...