Springboot:如何通过springboot执行自定义mongodb查询?

时间:2019-11-10 16:21:07

标签: java mongodb spring-boot kotlin

我想找到通过关键字与字段nameEnglishnameChinese匹配的模型的列表。我花了一个多小时的谷歌搜索,但我做不到。请帮忙。

Springboot Mongo入门示例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 :(得分:0)

我在洗完热水后找到了答案(经过一天的谷歌搜索和阅读文档)。希望这对以后的人有所帮助。

@Query(value = "{ \$or: [ {'nameEnglish': { \$regex: ?0, \$options: 'i'}}, {'nameChinese': { \$regex: ?0 }}] }", sort = "{nameEnglish: 1}")