Projeto em 5 minutos
Monte um projeto real com schema, database e uma collection pronta para uso.
Projeto em 5 minutos
Nesta página você vai montar um setup simples, organizado e fácil de evoluir com src/index.ts como ponto de uso, src/database/index.ts como ponto central da database e src/database/schema/member.ts para o domínio.
Estrutura sugerida
index.ts
member.ts
index.ts
1. Defina a interface e o schema
import { Schema } from "@tile.js/database";
export interface Member {
_id?: string;
name: string;
email: string;
verified?: boolean;
}
export const memberSchema = new Schema<Member>({
name: {
type: String,
required: true,
trim: true,
},
email: {
type: String,
required: true,
unique: true,
lowercase: true,
},
verified: {
type: Boolean,
default: false,
},
});2. Configure a collection e centralize a database
import { Database } from "@tile.js/database";
import { memberSchema, type Member } from "./schema/member.ts";
const connection = new Database({
dbName: "app",
});
export const database = Object.assign(connection, {
member: connection.collection<Member>("member", memberSchema),
});3. Use a database na aplicação
import { database } from "./database/index.ts";
await database.connect();
const member = await database.member.create({
name: "Ada Lovelace",
email: "ADA@EXAMPLE.COM",
});
const found = await database.member.findOne({
email: "ada@example.com",
});
await database.member.updateOne(
{ _id: member._id },
{
$set: { verified: true },
},
);
console.log(found);
await database.disconnect();Resultado esperado
nameserá normalizado comtrimemailserá salvo em minúsculas por causa delowercaseverifiedreceberáfalsepordefault_id,__ve timestamps serão adicionados automaticamente por padrão
No modo local
Com o adapter padrão, os dados ficam em .tile/database/<dbName>/<collection>/. Você não precisa criar essa pasta manualmente.