如何使用MongoDB java驱动程序3.0中的可选部件构建查询

时间:2015-12-08 16:00:30

标签: java mongodb mongo-java-driver

我想创建使用可选查询部分组成数据库查询的方法。

过去我可以编写如下方法:

import com.mongodb.DBObject;
import com.mongodb.QueryBuilder;

public DBObject createQuery(Optional<String> aOpt, Optional<Integer> bOpt) {
    QueryBuilder builder = new QueryBuilder();
    aOpt.ifPresent(a -> builder.and("a").is(a));
    bOpt.ifPresent(b -> builder.and("b").lessThan(b));
    return builder.get();
}

如何使用新的MongoDB Java驱动程序3.0来实现它

我试过像

这样的东西
import org.bson.Document;
import com.mongodb.client.model.Filters;

public Document createQuery(Optional<String> aOpt, Optional<Integer> bOpt) {
    Document query = new Document();
    aOpt.ifPresent(a -> query.put("a", a));
    bOpt.ifPresent(b -> query.[nonExistingMethod](Filters.lt("b", b)));
    return query;
}

但是所有过滤器方法都返回BSON,它无法流畅地转换为Document。似乎过滤器无法以这种方式使用......相当无用。

我是否想念一些东西。 如何明智地做到这一点?

0 个答案:

没有答案