Pular para o conteúdo

Consultas

Os métodos de lista (listRows, listFiles, list de usuários e de times…) aceitam queries: uma lista montada com a classe Query. As condições se somam (E lógico).

consultas.ts
import { Query, TablesDB } from '@owbase/web';
import { client } from './client';
const db = new TablesDB(client);
const { rows, total } = await db.listRows({
databaseId: 'loja',
tableId: 'pedidos',
queries: [
Query.equal('status', ['pago', 'enviado']),
Query.greaterThan('total', 100),
Query.orderDesc('$createdAt'),
Query.select(['$id', 'cliente', 'total', 'status']),
Query.limit(20),
],
});
console.log(`${rows.length} de ${total} pedidos`);
Para Query.
igual a um valor ou a um de vários equal('status', 'pago'), equal('status', ['pago', 'enviado'])
diferente notEqual(coluna, valor)
maior, menor greaterThan, greaterThanEqual, lessThan, lessThanEqual
intervalo between('total', 100, 500)
texto startsWith, endsWith, contains, search (este exige índice de texto)
vazio ou preenchido isNull(coluna), isNotNull(coluna)
OU entre condições or([Query.equal(…), Query.equal(…)])
ordenar orderAsc(coluna), orderDesc(coluna)
escolher colunas select(['$id', 'total'])
paginar limit(n), offset(n), cursorAfter(id) (Paginação)
  • Até 100 consultas por pedido, cada uma com até 4096 caracteres.
  • Filtro e ordenação em tabela grande pedem índice na coluna (Banco).
  • select diminui a resposta: traga só as colunas que a tela usa.