Я не могу найти какую-либо достоверную информацию о моей проблеме, поэтому мой пост здесь.
В моем сервисе используются 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);
но я не знаю, как справиться с несколькими критериями поиска (некоторые из них могут быть необязательными).