pau*_*aul 14 java spring mongodb spring-data
我们来看看有人可以帮忙解决这个问题.
我想使用Spring Data mongodb的Repository,我想使用Query annotation来过滤find by value A=10 or A=20
@Query("{A: 10, A:20}")
findById(int id);
Run Code Online (Sandbox Code Playgroud)
勉强","尝试制作一个AND,我需要一个OR.
有什么好主意吗?
hel*_*ava 49
或者,如果您使用的是Criteria API
Criteria criteria = new Criteria();
criteria.orOperator(Criteria.where("A").is(10),Criteria.where("B").is(20));
Query query = new Query(criteria);
mongoOps.find(query, <Yourclass>.class, "collectionName");
Run Code Online (Sandbox Code Playgroud)
Fak*_*ser 20
我认为这可能有用
@Query("{'$or':[ {'A':10}, {'B':20} ] }")
Run Code Online (Sandbox Code Playgroud)
小智 15
您可以像这样使用 Spring Data MongoDB:
Query query = new Query();
query.addCriteria(
Criteria.where("").orOperator(
Criteria.where("A").is(10),
Criteria.where("B").is(20)
)
);
mongoTemplate.find(query, YourClazz.class, "CollectionName");
Run Code Online (Sandbox Code Playgroud)
小智 8
除了 helloJava 答案之外,如果您已经有其他条件的查询,您可以直接在 query.addCriteria 上添加 orOperation,如下所示。
query.addCriteria(new Criteria().orOperator(Criteria.where("fieldA").is(value),
Criteria.where("fieldB").is(value2)));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37386 次 |
最近记录: |