我正在使用MongoDB 3.6.3版本,以及Java的3.6.0版Mongo和Bson驱动程序。
考虑以下过滤器:
import static com.mongodb.client.model.Filter.and;
import static com.mongodb.client.model.Filter.eq;
import static com.mongodb.client.model.Filter.gt;
.
.
.
Bson filter = and(eq("field1", value),
gt("field2", value2));
我需要在“filter”中有条件地添加另一个字段,从而使其变为:
Bson filter = and(eq("field1", value),
gt("field2", value2),
eq("field3", optionalValue));
有没有一种方法,可以通过将该字段附加到过滤器来完成这个操作,还是我必须单独创建过滤器? 例如。
Bson filter;
if (optionFieldRequired)
{
filter = and(eq("field1", value),
gt("field2", value2));
}
else
{
filter = and(eq("field1", value),
gt("field2", value2),
eq("field3", optionalValue));
}
List<Bson> fields = new ArrayList<>(); fields.add(eq("field1", value)); fields.add(gt("field2", value2)); if (optionFieldRequired) { fields.add(eq("field3", optionalValue)); } Bson filter = and(fields);
- s7vr