Back to Drizzle Orm

$Count

src/mdx/$count.mdx

latest937 B
Original Source

import Section from '@mdx/Section.astro';

db.$count() is a utility wrapper of count(*), it is a very flexible operator which can be used as is or as a subquery, more details in our GitHub discussion.

<Section> ```ts const count = await db.$count(users); // ^? number

const count = await db.$count(users, eq(users.name, "Dan")); // works with filters

```sql
select count(*) from "users";
select count(*) from "users" where "name" = 'Dan';
</Section>

It is exceptionally useful in subqueries:

ts
const users = await db.select({
  ...users,
  postsCount: db.$count(posts, eq(posts.authorId, users.id)),
}).from(users);

usage example with relational queries

ts
const users = await db.query.users.findMany({
  extras: {
    postsCount: db.$count(posts, eq(posts.authorId, users.id)),
  },
});