如何获取Drizzle-ORM中findMany查询返回的玩家数量?
获取Drizzle ORM查询返回的玩家总数
有两种常用方式,根据你的需求选择:
1. 直接使用查询结果的长度
如果你已经通过findMany拿到了players数组,直接取数组的length属性就能得到玩家总数:
const players = await trx.query.playerTable.findMany({ with: { posts:true } }) const playerCount = players.length;
2. 单独执行总数查询(更高效)
如果不需要获取玩家的具体数据,只是想统计总数,直接执行count查询会更节省资源:
// 方式一:使用sql函数 import { sql } from 'drizzle-orm'; const result = await trx.select({ count: sql<number>`count(*)` }).from(playerTable); const playerCount = result[0].count; // 方式二:使用Drizzle内置的count方法 const playerCount = await trx.count(playerTable).execute();
注意:第二种方式不会关联查询
posts数据,适合只需要统计总数的场景;如果已经需要获取玩家及关联的posts数据,第一种方式更直接。
内容的提问来源于stack exchange,提问作者rafaelHTML
相关产品推荐
相关产品推荐

