1

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

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

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流畅地转换。似乎不能那样使用过滤器......非常没用。

我想念什么吗。如何明智地做到这一点?

4

0 回答 0