我正在根据多个参数生成一个复杂的 Mongo
查询。我想用 Criteria
助手类制定的标准之一是:
{"field1": {$exists: true, $ne: false}}
我试图做到这一点:
Criteria.where("field1").is(Criteria.where("$ne").is(false).and("$exists").is(true))
但它会产生:
{ "field1" : { $java : org.springframework.data.mongodb.core.query.Criteria@23864e60 }
那么, 如何实现我需要的确切查询呢? 我不能对该查询字符串进行硬编码,因为这些类型标准是为 field1,…fieldN 动态生成的,然后与 $or
结合:
statusCriteria = statusCriteria.orOperator(criterias.toArray(new Criteria[criterias.size()]));
原文由 Aeteros 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于您不能使用
Criteria.and()
将多个条件添加到同一字段中,因此使用Criteria.andOperator()
如下: