オプションのクエリパーツを使用して db クエリを作成するメソッドを作成したいと考えています。
昔は次のようなメソッドを書くことができました:
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 driver 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;
}
Document
しかし、すべてのフィルター メソッドは、流暢に変換できなかった BSON を返します。フィルターはそのように使用できなかったようです...かなり役に立ちません。
私は何かが恋しいですか。それを賢く行う方法は?