我正面临Spring Data MongoDB Criteria API orOperator
问题。
以下是不规则动词的查询结果:(终端输出)
> db.verb.find({'v2':'wrote'});
{ "_id" : ObjectId("5161a8adba8c6390849da453"), "v1" : "write", "v2" : "wrote", "v3" : "written" }
我使用 Spring Data MongoDB Criteria API 按v1
或v2
值查询谓词:
Criteria criteriaV1 = Criteria.where("v1").is(verb);
Criteria criteriaV2 = Criteria.where("v2").is(verb);
Query query = new Query(criteriaV1.orOperator(criteriaV2));
List<Verb> verbList = mongoTemplate.find(query, Verb.class)
但遗憾的是verbList
没有任何项目。
答案 0 :(得分:32)
据我记得,为了使用orOperator你应该这样做:
Query query = new Query(new Criteria().orOperator(criteriaV1,criteriaV2));
答案 1 :(得分:1)
我们需要明确指定具有OR条件的新条件-尝试以下示例
Criteria criteria = Criteria.where("field1").is(val1).
.andOperator(new Criteria().orOperator(Criteria.where("field2").is(filterVal),
Criteria.where("field3").is(filterVal)));