首页 > 解决方案 > Spring Boot + Webflux + MongoDB + 多个搜索条件

问题描述

我找不到关于我的问题的任何有价值的信息,因此我的帖子在这里。

我的服务使用 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);

也许我应该使用例如查询 DSL 库?

到目前为止,我使用反应式存储库:

public interface OfferRepository extends ReactiveMongoRepository<Offer, String> {

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

但我不知道如何处理多个搜索条件(其中一些可以是可选的)。

标签: mongodbspring-bootreactive-programmingspring-webfluxcriteria-api

解决方案


推荐阅读