Я борюсь с монго-запросом. Мне нужно найти коллекцию документов в одном запросе. Коллекция должна содержать документ с самой новой датой (поле createdAt
) для каждого пользователя в отдельном запросе.
В Споке есть тестовый пример, демонстрирующий то, что я пытаюсь достичь:
def 'should filter the newest location for every user'() {
given:
List locationsInDb = [
buildLocation(USERNAME_1, '2017-02-03T10:37:30.00Z'),
buildLocation(USERNAME_1, '2017-03-04T10:37:30.00Z'),
buildLocation(USERNAME_2, '2017-02-05T10:37:30.00Z'),
buildLocation(USERNAME_2, '2017-03-06T10:37:30.00Z')
]
insertToMongo(locationsInDb)
when:
List filteredLocations = locationRepository.findLastForEveryUser()
then:
filteredLocations == [locationsInDb.get(1), locationsInDb.get(3)]
}
Я обнаружил, что различные методы являются частью версии 2.1.0.M1
, поэтому они еще не доступны.
Я также пытался использовать аннотацию @Query
, но в документации (ссылка ниже) не указано, как создать запрос, подобный моему.
https://docs.spring.io/spring-data/data-document/docs/current/reference/html/#d0e3309
Спасибо за вашу помощь.