Skip to content

First queries

Once configured, import from jsorm.server.ts and start querying.

import { jsorm } from "./models/jsorm.server.js";
const { data: user } = await jsorm.users.create({
name: "Juan",
email: "juan@test.com",
});
// Without select — returns full model
const { data: users } = await jsorm.users.get({
where: { active: true },
});
// With select — returns only selected fields
const { data: users } = await jsorm.users.get({
select: { id: true, name: true, role: { name: true } },
where: { active: true },
orderBy: { createdAt: "desc" },
});
const { data: user } = await jsorm.users.first({
select: { name: true, email: true },
where: { email: "juan@test.com" },
});
const { data: page, meta } = await jsorm.users.get({
select: { id: true, name: true },
pagination: { page: 1, perPage: 10 },
});
// meta.page, meta.perPage, meta.total, meta.lastPage
const { data: affected } = await jsorm.users.update({
where: { id: user.id },
data: { name: "Juan Updated" },
});
const { data: deleted } = await jsorm.users.delete({
where: { active: false },
});
const { data: total } = await jsorm.users.count({
where: { active: true },
});
const { data: exists } = await jsorm.users.exists({
where: { email: "juan@test.com" },
});
// Main database — direct access
const { data: users } = await jsorm.users.get();
// Non-main database — namespaced access
const { data: sessions } = await jsorm.cache.sessions.get();
const { data: events } = await jsorm.analytics.events.create({ name: "login" });
const { data: result } = await jsorm.raw({
sql: "SELECT avg(price) FROM products WHERE price > ?",
params: [100],
});
// In a specific database
const { data: analyticsResult } = await jsorm.raw({
db: "analytics",
sql: "SELECT * FROM events",
});