我正在根据多个参数生成复杂的val props = new HashMap[String, Any]()
props += ("gatling.charting.indicators.lowerBound" -> 5)
props += ("gatling.charting.indicators.higherBound" -> 100)
GatlingConfiguration.setUp(props)
查询。我想用Mongo
助手类制作的标准之一是:
Criteria
我试图用:
{"field1": {$exists: true, $ne: false}}
但它会产生:
Criteria.where("field1").is(Criteria.where("$ne").is(false).and("$exists").is(true))
那么,如何实现我需要的确切查询?
我无法对该查询字符串进行硬编码,因为这些类型标准是为field1,... fieldN动态生成的,然后与{ "field1" : { $java : org.springframework.data.mongodb.core.query.Criteria@23864e60 }
结合使用:
$or
答案 0 :(得分:15)
由于您无法使用Criteria.and()
在同一字段中添加多个条件,请按以下方式使用Criteria.andOperator()
:
Query query = new Query();
query.addCriteria(
new Criteria().andOperator(
Criteria.where("field1").exists(true),
Criteria.where("field1").ne(false)
)
);
List<Foo> result = mongoTemplate.find(query, Foo.class);
System.out.println("query - " + query.toString());
for (Foo foo : result) {
System.out.println("result - " + foo);
}
答案 1 :(得分:0)
Query query = new Query(Criteria.where("field1").exists(true).ne(false));
或者,如果field1在存在时始终为布尔值:
Query query = new Query(Criteria.where("field1").is(true));