You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Data MongoDB的@Query注解中添加Limit限制?

在Spring Data MongoDB的@Query中设置Limit限制的正确方法

当然可以直接在@Query层面设置limit,不过你当前的写法有问题——sort和limit属于查询选项,不能直接塞进查询条件的JSON字符串里,这就是为什么limit=5没生效的原因。

下面给两种可行的实现方式:

方式一:利用@Query注解的内置属性

直接通过注解的sort和limit参数来配置,代码示例:

@Query(
    value = "{'area': ?0, /* 这里放你的其他查询逻辑 */}",
    sort = "{'dateUploaded': -1}",
    limit = "#?1"
)
fun findLatestUploads(area: String, limit: Int): List<AudioFile>
  • value字段只保留匹配文档的查询条件,别加sort、limit这些选项
  • sort直接传入排序规则的JSON字符串
  • limit用SpEL表达式#?1绑定方法的第二个参数(参数索引从1开始计数)

方式二:使用聚合管道(适合复杂查询场景)

如果你的查询逻辑涉及多阶段处理,用聚合管道更灵活,把匹配、排序、限制写成管道数组:

@Query("""
    [
        { '$match': { 'area': ?0, /* 其他查询逻辑 */ } },
        { '$sort': { 'dateUploaded': -1 } },
        { '$limit': ?1 }
    ]
""")
fun findLatestUploads(area: String, limit: Int): List<AudioFile>

这种方式会把整个查询当作聚合操作执行,每个管道阶段依次处理,能满足更复杂的业务需求。

内容的提问来源于stack exchange,提问作者Jesser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 11:02:14