Умный способ использовать Collation из Spring Data ReactiveMongoRepository - PullRequest
0 голосов
/ 15 декабря 2018

Мы разрабатываем приложение для реактивного стека Spring 5.Для сохранения мы используем MongoDb с ReactiveMongoRepository (ReactiveCrudRepository) из Spring Data.

В настоящее время для извлечения данных мы используем запрос типа

@Query("{ 'ownerId': ?0, filePath: {$regex: ?1}, tags: { $all : ?2}}")
Flux<Media> findAllByOwnerIdAndFilePathRegexAndTagsContainingAll(String ownerId, String pathRegex, List<Tag> tags);

Теперь мы хотим получить данные по нечувствительным тегам.Для этого я создал индекс в БД с сопоставлением, таким как { locale: 'en', strength: 2 }, как описано здесь .

Теперь я хочу получить мои данные из БД с использованием индекса.Путь MonogoDB будет db.media.find( { filePath: "/example/" } ).collation( { locale: 'en', strength: 2 } ).

Кто-нибудь знает умный способ использовать сопоставления из ReactiveMongoRepository?

1 Ответ

0 голосов
/ 17 декабря 2018

В текущих версиях Spring Data вам нужно использовать MongoOperations, предоставляя Query, который определяет Collation.
Пожалуйста, обратитесь к Справочной документации для получения подробной информации об этом.

Пожалуйста, не забудьте также проверить / прокомментировать DATAMONGO-1854 , в котором предлагается добавить сопоставление в @Query.

...