java - Springboot : How to execute custom mongodb query by springboot?

标签 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>
}

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

最佳答案

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

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

关于java - Springboot : How to execute custom mongodb query by springboot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58790590/

相关文章:

java - 当帧捕捉到屏幕左侧或右侧时具有事件的监听器

mongodb - TypeError : utils. 填充 : invalid path. 预期的字符串。得到类型 `undefined`

Spring框架+NoSQL

java - 组织.postgresql.util.PSQLException : ERROR: operator does not exist: integer = bytea

spring - 在 Spring JPA 中保存实体之前的业务逻辑

java - onClick Eclipse 按钮

java - 在命令行运行 PEPK 应用程序签名工具时出错 (java -jar pepk.jar)

java - 使用 PDFBox 获取文本颜色

mongodb - 数据未从MongoDB 3.0复制到Elastic Search 1.4.2和

javascript - 拒绝执行脚本 runtime.js,因为 MIME 类型不可执行