$and/$or/$nor必须是非空数组mongotemplate java micronaut 2.2.1

ycggw6v2  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(706)

我有一个问题

List<Bson> query = QueryBuilder.QueryBuilder(ProductSearchCriteria, Bson.class);
    var item = Flowable.fromPublisher(
                    repository.getCollection(ProductConstrants.PRODUCT_COLLECTION_NAME, Product.class)
                            .find(Filters.and(query))).blockingIterable();
            item.forEach(value -> {
                productLists.add(
                        new ProductViewModel(
                                value.getId().toString(),
                                value.getName(),
                                value.getDescription(),
                                value.getPrice()
                        ));
            });

现在 List<Bson> query 有时计数大于0,有时==0。当计数大于0时,工作正常,但是当计数为0时,会出现异常 (BadValue): '$and/$or/$nor must be a nonempty array' 这是有道理的。
我的意思是当count>0时,如何使查询动态化

Flowable.fromPublisher(
                repository.getCollection(ProductConstrants.PRODUCT_COLLECTION_NAME, Product.class)
                        .find(Filters.and(query))).blockingIterable();

当计数==0时

Flowable.fromPublisher(
                repository.getCollection(ProductConstrants.PRODUCT_COLLECTION_NAME, Product.class)
                        .find()).blockingIterable();

我不想写if&else语句,有没有更好的方法?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题