Пн go Поисковый запрос: запрос списка в массиве встроенных документов - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь написать Mon go Query, который должен принимать список объектов в запросе, а Document должен содержать этот список объектов.

Например, следующим является запрос поиска:

class SearchRquest{
  private String jeeves;
  private List<Wooster> woosters;
}

class Wooster{
  private String age;
  private String hobby;
}

Здесь, если документ содержит все элементы списка Wooster поискового запроса, его следует вернуть. Я пытаюсь написать запрос следующим образом:

   public List<Wodehouse> findBySearchRequest(SearchRequest request) {
    Query query = new Query();

    if(null != request.getJeeves()) {
        query.addCriteria(Criteria.where("jeeves").is(request.getJeeves()));
    }
    if(null != request.getWoosters()){
        for(Wooster wooster: request.getWoosters()){       
          query.addCriteria(Criteria.where("woosters").elemMatch(Criteria.where("age")
          .is(wooster.getAge()).and("hobby").is(wooster.getHobby())));
        }
    }

    log.info("query = "+query);
    return mongoTemplate.find(query, Wodehouse.class, COLLECTION_NAME).size();
}

, но он дает следующее исключение:

org.springframework.data.mongodb.InvalidMongoDbApiUsageException: 
Due to limitations of the com.mongodb.BasicDocument, you can't add a second 'woosters' criteria. Query already contains.

Я попытался найти пример выше, но не смог его найти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...