Springboot: Как выполнить собственный запрос mongodb с помощью springboot? - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу найти список моделей, которые совпадают либо с полем nameEnglish, либо nameChinese по ключевому слову. Я потратил больше часа на поиск в Google, но я не могу этого сделать. Пожалуйста, помогите.

Пример Springboot Mongo Starter https://spring.io/guides/gs/accessing-data-mongodb/

Пользовательский запрос, который я хочу выполнить и вернуть результат списка

db.mymodel.aggregate([ 
    {
        $match: {
            $or :[
             { nameChinese: /門/ },
             { nameEnglish: /cocina/i }
            ]
        }
    },
    { $sort: {nameEnglish: 1} }
])

Моя лучшая пробная версия на данный момент

interface MyModelRepository : MongoRepository<MyModel, String> {
    @Query(value = "{ '\$match': { \$or: [ {'nameEnglish': { \$regex: ?0 } }, {'nameChinese': { \$regex: ?0 } } ] }")
    fun findByMyQuery(name: String): List<MyModel>
}

Что касается регулярного выражения, я также хочу, чтобы оно не учитывало регистр.

1 Ответ

0 голосов
/ 11 ноября 2019

Я нашел ответ после горячего душа (и одного дня гугля и чтения документов). Надеюсь, что это поможет кому-то в будущем.

@Query(value = "{ \$or: [ {'nameEnglish': { \$regex: ?0, \$options: 'i'}}, {'nameChinese': { \$regex: ?0 }}] }", sort = "{nameEnglish: 1}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...