spring - 在Spring MongoDB存储库中将$ slice与Kotlin中的@Query一起使用时,注释参数错误

标签 spring mongodb spring-boot kotlin

我在MongoDB上使用Spring Boot Kotlin。在这个项目中,我有一个类,该类具有名为pointsEntry的数组属性。我一直在尝试使用运算符$ slice在我自己的findAll方法中检索所有列表的第一个pointsEntry。在我的Mongo客户端中尝试此查询时有效:

db.getCollection('collectionName').find( {}, { "pointsEntry" : { $slice: 1 } } )

但是,我在Spring Boot项目中使用@Query注释尝试了类似的方法,但始终会出错

An annotation argument must be a compile-time constant


@Query(value = "{}",fields = "{pointsEntry: {'$slice' : ?0}}")
fun findAll() : List<DocumentName>

最佳答案

它在'字段上缺少pointsEntry单引号

@Query(value = "{}", fields = "{'pointsEntry': {'$slice' : ?0}}")

关于spring - 在Spring MongoDB存储库中将$ slice与Kotlin中的@Query一起使用时,注释参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59953780/

相关文章:

java - Spring junit 测试不工作

javascript - Mongoose,保存查找结果似乎什么也没做

json - 从 MongoDB Cloud 导出到本地 MongoDB ("$oid is not valid for storage."错误)

java - 无法自动配置数据源 : 'spring.datasource.url'

java - 使用 Spring,@InjectMock 注释测试目标不使用模拟

java - 创建名称为 'entityManagerFactory' : [PersistenceUnit: default] Unable to build Hibernate SessionFactory 的 bean 时出错

java - 有没有办法在 Spring WS 2 中公开静态 XSD?

mongodb - Mongotemplate - 根据大于(gt)或小于(lt)运算符查询ObjectId

java - Apache Camel 的 @Consume 如何在 Spring Boot 项目中进行映射?

java - 如何在 Spring Boot 中配置 Maven Liquibase 插件?