-
Notifications
You must be signed in to change notification settings - Fork 0
Queries
Carlos Lopez edited this page Jul 16, 2026
·
1 revision
Guía completa sobre operaciones CRUD y queries.
Insertar nuevos registros en la base de datos.
await db.insert(Entity).values(data);const user = await db.insert(User).values({
id: 'uuid-1',
email: 'john@example.com',
name: 'John Doe',
age: 30,
createdAt: new Date()
});const users = await db.insert(User).values([
{
id: 'uuid-1',
email: 'john@example.com',
name: 'John',
age: 30,
createdAt: new Date()
},
{
id: 'uuid-2',
email: 'jane@example.com',
name: 'Jane',
age: 28,
createdAt: new Date()
}
]);Consultar registros con filtros opcionales.
const allUsers = await db.select().from(User);const emails = await db
.select(['email', 'name'])
.from(User);const adults = await db
.select()
.from(User)
.where(eq('age', 30));const filtered = await db
.select()
.from(User)
.where(
and(
eq('age', 30),
ilike('email', '%@example.com')
)
);const userWithPosts = await db
.select()
.from(User)
.where(eq('id', 'uuid-1'))
.include({
posts: true // Cargar relación 'posts'
});const query = db.select(['id', 'name', 'email']).from(User);
// Aplicar condiciones dinámicamente
if (filterAge) {
query.where(gte('age', 18));
}
const results = await query;Actualizar registros existentes.
await db
.update(Entity)
.set(updatedFields)
.where(condition);await db
.update(User)
.set({
name: 'Jane Doe',
age: 31,
updatedAt: new Date()
})
.where(eq('id', 'uuid-1'));await db
.update(User)
.set({ isActive: false })
.where(lt('age', 18)); // Desactivar menores de edadEliminar registros.
await db
.delete()
.from(Entity)
.where(condition);await db
.delete()
.from(User)
.where(eq('id', 'uuid-1'));await db
.delete()
.from(User)
.where(gte('createdAt', oneYearAgo)); // Archivar antiguosPara consultas más complejas, usa el método $raw:
const results = await db.$raw<MyType>(
'SELECT * FROM users WHERE age > ?',
[18]
);GitDB ejecuta cada operación como un commit Git automático:
// Cada operación crea un commit
await db.insert(User).values(userData); // Commit 1
await db.update(User).set(updates).where(...); // Commit 2
await db.delete().from(User).where(...); // Commit 3
// Todos los cambios quedan en el historio de GitCierra la conexión cuando termines:
await db.close();- WHERE Operators - Filtros avanzados
- Aggregations - COUNT, SUM, AVG
- Relations - Trabajar con relaciones