0

我正在将 MongoClient 与 micronaut MongoDb 一起使用。尝试执行查询运算符以在 mongoDb 中创建查询。

public static Bson QueryBuilder(ProductSearchCriteria productSearchCriteria){
        Bson query = null;
        if (productSearchCriteria.getName() != null){
         query = Filters.eq("name", productSearchCriteria.getName());
        }
        if(productSearchCriteria.getDescription() != null){
            query = Filters.eq("description", productSearchCriteria.getDescription());
        }
        return query;
    }

现在如何在一个查询中执行逻辑 AND/OR/NOT/NOR 和其他运算符

4

1 回答 1

0

我是这样做的,不知道是不是正确的方法

public static List<Bson> QueryBuilder(ProductSearchCriteria productSearchCriteria){
        List<Bson> filters = new ArrayList<>();
        final BeanIntrospection<Product> introspection = BeanIntrospection.getIntrospection(Product.class);
        var product = introspection.getPropertyNames();

        if (productSearchCriteria.getName() != null){
            filters.add(Filters.eq(product[0], productSearchCriteria.getName()));
        }
        if(productSearchCriteria.getDescription() != null){
            filters.add(Filters.eq(product[2], productSearchCriteria.getDescription()));
        }
        return filters;
    }
于 2020-11-03T02:25:21.570 回答