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

如何使用Prisma对查询返回的嵌套二级modules、lessons数组排序

结论

该需求完全可实现,Prisma原生支持对嵌套关联的查询结果指定排序规则,排序逻辑会直接在PostgreSQL查询阶段完成,性能优于查询后手动处理数据。

具体操作

你只需在原有include配置的对应关联层级中增加orderBy参数即可,修改后的查询代码如下:

await prisma.items.findMany({
  where: { itemId: itemId },
  include: {
    modules: {
      // 对modules数组按number字段升序排序,降序可改为'desc'
      orderBy: { number: 'asc' },
      include: {
        lessons: {
          // 对每个module下的lessons数组按number字段升序排序
          orderBy: { number: 'asc' }
        }
      }
    }
  }
});

补充说明

  • 支持多字段组合排序,只需将orderBy的值改为数组,按优先级放入多个排序规则即可:
    orderBy: [
      { number: 'asc' },
      { updateTime: 'desc' }
    ]
    
  • orderBy可以和关联查询的where、select等配置同时使用,互不冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:06:04