У меня есть Spring Boot API, связанный с базой данных mongodb.
По определенному маршруту я получаю события для данного пользователя (он анализирует большую коллекцию с миллионами документов); проблема в том, что я получаю эти документы в> 20 с, но когда я использую mongoshell, я получаю их в 0,5 с.
Я уже добавил индекс по идентификатору пользователя (он стал намного быстрее).
Я погуглил проблему, но не вижу ответов по этому поводу (или, возможно, я не понял сути).
Мой метод делает очень простую вещь:
public Collection<Event> getEventsForUser(final String tenantId, final String orgId, final String userId)throws EventNotFoundException {
Collection<MongoEvent> mongoEvents = mongoEventRepository.findByTenantIdAndOrganizationIdAndUserIdIgnoreCase(tenantId, orgId, userId);
if (mongoEvents != null && !mongoEvents.isEmpty())
return mongoEvents.stream().map(MongoEvent::getEvent).collect(Collectors.toList());
throw new EventNotFoundException("Events not found.");
}
Это нормально или есть решение для оптимизации запроса?
Спасибо!