Запрос монго потока не работает, когда я передаю условие фильтра в параметре запроса и пользовательском классе - PullRequest
0 голосов
/ 29 августа 2018

1) Я использую mongotemplate с потоком для запроса mongodb и передаю специальный класс для анализа результата. но он не работает, когда я передаю условие фильтра и пользовательский класс в качестве параметров потока.

@Override
public CloseableIterator<Map> findCreatedAtBetween(long ageGTE, long ageLT, String empId, String collection) {
    return mongoTemplate.stream(new Query().addCriteria(new Criteria().andOperator(Criteria.where("empId").is(empId),Criteria.where("l_createdAt").gte(ageGTE).lte(ageLT))), Emp.class, collection);
}

2) если я уберу условия фильтра и передам пользовательский класс, как показано ниже, это будет работать, но при этом будут извлечены все данные из базы данных.

@Override
public CloseableIterator<Map> findCreatedAtBetween(long ageGTE, longageLT, String empId, String collection) {
    return mongoTemplate.stream(new Query(), Emp.class, collection);
}

3) если я оставлю запрос таким же с фильтрами и передам карту в качестве второго параметра потока, как показано ниже, это также работает.

@Override
public CloseableIterator<Map> findCreatedAtBetween(long ageGTE, long, ageLT, String empId, String collection) {
    return mongoTemplate.stream(new Query().addCriteria(new Criteria().andOperator(Criteria.where("empId").is(empId),Criteria.where("l_createdAt").gte(ageGTE).lte(ageLT))), Map.class, collection);
}

но мне нужно что-то вроде упомянутого в пункте 1), где мне нужно передать условия фильтра для запроса, а также собственный класс для анализа результатов.

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