Como usar filtros e ordenações no Drizzle ORM
Use operadores como eq, ne, like, in e ordene resultados com eficiência no Drizzle ORM sem complicação.
Carregando
Use operadores como eq, ne, like, in e ordene resultados com eficiência no Drizzle ORM sem complicação.
O ponto crítico que faz seus testes de API darem errado: como corrigir inconsistências de status e...
Como implementar paginação eficiente com Bun.js e Drizzle ORM, alcançando performance superior e código...
Como usar filtros e ordenações no Drizzle ORM. Use operadores como eq, ne, like, in e ordene resultados com eficiência no Drizzle ORM sem complicação.
Para listar perguntas da tabela <code>questions</code> em um banco configurado com Drizzle ORM, você precisa montar uma consulta com <code>select</code> , aplicar o <code>where</code> adequado e trazer o retorno com os tipos já inferidos em TypeScript.
O Drizzle oferece operadores para filtros como igualdade, diferença, comparação e padrões. Eles ficam disponíveis via <code>drizzle-orm</code> e precisam ser importados explicitamente para utilizar nos filtros.
Todos os operadores precisam ser importados manualmente. Esquecer de importar provoca erro de tempo de compilação e impede o uso do operador esperado.
Definimos uma constante <code>result</code> usando <code>await db.select()</code> . Podemos puxar todos os campos de <code>schema.questions</code> e já aplicar o filtro com <code>where</code> , usando o operador <code>eq</code> , comparando o campo <code>schema.questions.roomId</code> com o <code>roomId</code> recebido por parâmetro.
Certifique-se que os campos usados no filtro já estejam tipados corretamente dentro do schema criado pelo Drizzle.
Para que os resultados mais recentes apareçam primeiro, usamos o operador <code>desc</code> importado de <code>drizzle-orm</code> . Essa função ordena de forma decrescente com base na coluna selecionada.
O operador <code>desc</code> também precisa ser importado. Ele aceita qualquer campo declarado no schema, como <code>schema.questions.createdAt</code> .
eq e desc dos pacotes do Drizzle.select diretamente em schema.questions .where com eq(schema.questions.roomId, roomId) .orderBy(desc(schema.questions.createdAt)) .<code>const result = await db.select().from(schema.questions).where(eq(schema.questions.roomId, roomId)).orderBy(desc(schema.questions.createdAt))</code>
Não confunda o operador <code>desc</code> com uma string 'DESC', como seria comum em SQL puro. No Drizzle precisamos passar a função para que o tipo seja inferido corretamente.
Igualdade, diferença e inclusão
like, ilike, maior, menor
Banco relacional compatível com Drizzle
Tipagem estática para total suporte no desenvolvimento