我想找到通过关键字匹配字段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>
}


对于正则表达式,我也希望它不区分大小写。

最佳答案

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

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

关于java - Springboot:如何通过springboot执行自定义mongodb查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58790590/

10-10 12:30