Spring + MongoDB - MongoTemplate + Критерий запроса - PullRequest
0 голосов
/ 06 марта 2019

Я использую Spring Boot + MongoDB.Мне нужно запросить базу данных на основе некоторых критериев, где мои методы выглядят следующим образом:

@Override
    public List<MyCollection> findBuyByCriteria(Request request) {
        Query search = new Query();
        search.addCriteria(Criteria.where("ItmId").in(request.getItmIds()));
        return mongoTemplate.find(search, MyCollection.class);
    }

Проблема, с которой я сталкиваюсь: В строке

search.addCriteria (Criteria.where ("ItmId") .in (request.getItmIds ()));

request.getItmIds имеет 1 миллион идентификаторов, из-за чего я получаю исключение

org.bson.BsonMaximumSizeExceededException: размер документа 46282052 больше максимального значения 16793600

Может кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 06 марта 2019

Если вы используете Spring Data JPA, вы можете сделать что-то вроде: findBySomeField(String someField)

Если у вас более сложный запрос, вы можете использовать JPQL и написать собственный запрос.

@Query(value = "SELECT o.* from SomeObject o WHERE :someField IS NULL OR o.someField = :somefield)
public findBySomeField(@Param("someField") String someField);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...