복붙노트

[SPRING] 쿼리에서 Spring 데이터 몽고 사용 OR

SPRING

쿼리에서 Spring 데이터 몽고 사용 OR

누군가가 이것을 도울 수 있는지 보도록하겠습니다.

나는 봄 데이터 mongodb의 저장소를 사용하기를 원하며, 쿼리 주석을 사용하여 값을 A = 10 또는 A = 20으로 찾기를 원한다.

  @Query("{A: 10, A:20}")
  findById(int id);

분명히 ","AND를하려고하면 OR이 필요합니다.

어떤 생각이야?

해결법

  1. ==============================

    1.나는 이것이 효과가있을 것이라고 생각한다.

    나는 이것이 효과가있을 것이라고 생각한다.

    @Query("{'$or':[ {'A':10}, {'B':20} ] }")
    
  2. ==============================

    2.또는 Criteria API를 사용하는 경우

    또는 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");
    
  3. ==============================

    3.Spring의 BasicQuery 사용하기 :

    Spring의 BasicQuery 사용하기 :

    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);
    
  4. ==============================

    4.이를 위해 $ in 연산자를 사용할 수 있습니다. Java Spring에 대해서는 알지 못하지만 예제를 보면 Query 부분은 다음과 같아야합니다.

    이를 위해 $ in 연산자를 사용할 수 있습니다. Java Spring에 대해서는 알지 못하지만 예제를 보면 Query 부분은 다음과 같아야합니다.

    @Query("{A: {$in: [10, 20]}}")
    
  5. ==============================

    5.스프링 자바에서 $ in 연산자를 사용할 수 있습니다 :

    스프링 자바에서 $ in 연산자를 사용할 수 있습니다 :

    기준 criteria = Criteria.where ( "field") .in (listOfOptions);

  6. ==============================

    6.

    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);
    
  7. ==============================

    7.Spring의 Query 구조를 사용할 수있다.

    Spring의 Query 구조를 사용할 수있다.

    Query query = new Query();
    query.addCriteria(Criteria.where("id").is(10).orOperator(Criteria.where("id").is(20));
    this.client.findOne(query, clazz);
    
  8. from https://stackoverflow.com/questions/16478101/spring-data-mongo-use-or-in-query by cc-by-sa and MIT license