반응형
쿼리에서 스프링 데이터 사용 OR
누가 이것을 도와줄 수 있는지 봅시다.
Spring Data mongodb 저장소를 사용하고 쿼리 주석을 사용하여 값으로 찾기를 필터링합니다.A=10 or A=20
@Query("{A: 10, A:20}")
findById(int id);
분명히, AND를 시도해보세요. 그리고 저는 수술이 필요합니다.
어떤 아이디어라도 있습니까?
또는 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");
이게 효과가 있을 것 같아요.
@Query("{'$or':[ {'A':10}, {'B':20} ] }")
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");
helloJava 답변 외에도 이미 다른 기준의 쿼리가 있는 경우에는 아래와 같이 query.addCriteria를 추가하거나 Operation on query.addCriteria를 사용할 수 있습니다.
query.addCriteria(new Criteria().orOperator(Criteria.where("fieldA").is(value),
Criteria.where("fieldB").is(value2)));
Spring Java에서 $in 연산자를 사용할 수 있습니다.
Criteria criteria = Criteria.where("field").in(listOfOptions);
연산자를 사용하면 됩니다.저는 자바 스프링을 모르지만, 당신의 예를 들어,Query
부품은 다음과 같아야 합니다.
@Query("{A: {$in: [10, 20]}}")
Spring의 기본 쿼리 사용:
DBObject queryCondition = new BasicDBObject();
BasicDBList values = new BasicDBList();
values.add(new BasicDBObject("A", 10));
values.add(new BasicDBObject("B", 20));
queryCondition.put("$or", values);
Query query = new BasicQuery(queryCondition);
mongoTemplate.find(query, clazz);
Query query = new Query();
Criteria criteria = new Criteria();
criteria.orOperator(Criteria.where("category").is("your_Value_Category"),
Criteria.where("parentCategory").is("your_Value_ParentCategory"));
query.addCriteria(criteria);
mongoTemplate.find(query, YourPersistenceClass.class);
Spring's Query 구조를 사용할 수 있습니다.
Query query = new Query();
query.addCriteria(Criteria.where("id").is(10).orOperator(Criteria.where("id").is(20));
this.client.findOne(query, clazz);
언급URL : https://stackoverflow.com/questions/16478101/spring-data-mongo-use-or-in-query
반응형
'programing' 카테고리의 다른 글
단일 개체에 대한 .filter() vs.get()? (장고) (0) | 2023.07.05 |
---|---|
파이어베이스 분석을 처음 보고하는 데 시간이 얼마나 걸립니까? (0) | 2023.06.30 |
Vue.set /Vue.delete 대신 Vue.js 스프레드 연산자 (0) | 2023.06.30 |
C 소스를 C++로 변환하는 중 (0) | 2023.06.30 |
Oracle like 절에서 밑줄이 작동하지 않습니다. (0) | 2023.06.30 |