© 2026 Hedgehog Software, LLC
convertWhereClause
drizzleAdapter
ne
eq
import { betterAuth } from 'better-auth'; import { drizzleAdapter } from 'better-auth/adapters/drizzle'; import { admin } from 'better-auth/plugins'; import { drizzle } from 'drizzle-orm/node-postgres'; import { Pool } from 'pg'; import * as schema from './schema'; export const auth = betterAuth({ database: drizzleAdapter( drizzle({ client: new Pool({ connectionString: process.env.DB_CONNECTION_STRING, }), schema, }), { provider: 'pg', schema, }, ), plugins: [admin()], });
import { createAuthClient } from 'better-auth/client'; import { adminClient } from 'better-auth/client/plugins'; export const client = createAuthClient({ plugins: [adminClient()], });
import { client } from './client' const { data } = await client.admin.listUsers({ query: { filterField: 'role', filterOperator: 'ne', filterValue: 'admin', }, }); const nonAdmins = data?.users; // ^ This would return all admins instead.
debugLogs
[Better Auth]: [Drizzle Adapter] #2 [1/3] findMany: { model: 'user', where: [ { operator: 'ne', connector: 'AND', field: 'role', value: 'admin' } ], limit: 300 } [Better Auth]: [Drizzle Adapter] #3 [1/2] count: { model: 'user', where: [ { operator: 'ne', connector: 'AND', field: 'role', value: 'admin' } ] }