v1.2adapters/sqlite
Tile.JS
Tile.JS

Visão geral

Guia oficial do @tile.js/database para BSON local, MongoDB e Mongoose.

@tile.js/database

O @tile.js/database é uma camada de persistência tipada para Node.js e Bun com a mesma API sobre múltiplos backends.

Você pode começar com o adapter local em BSON, e depois migrar para MongoDB, Mongoose ou até um adapter próprio sem reescrever toda a superfície pública da sua aplicação.

O foco da biblioteca

O Tile mantém uma API pequena, previsível e orientada a documentos. Ele não tenta reproduzir toda a linguagem de query do MongoDB nem substituir um ORM/ODM completo.

O que você encontra nesta documentação

Mesmo fluxo, backends diferentes

src/database/index.ts
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),
});
src/database/index.ts
import { Database } from "@tile.js/database";
import { mongodbAdapter } from "@tile.js/database/adapters/mongodb";
import { MongoClient } from "mongodb";
import { memberSchema, type Member } from "./schema/member.ts";

const client = new MongoClient("mongodb://127.0.0.1:27017");

const connection = new Database({
  storage: mongodbAdapter(client, {
    dbName: "app",
  }),
});

export const database = Object.assign(connection, {
  member: connection.collection<Member>("member", memberSchema),
});
src/database/index.ts
import { Database } from "@tile.js/database";
import { sqliteAdapter } from "@tile.js/database/adapters/sqlite";
import DatabaseDriver from "better-sqlite3";
import { memberSchema, type Member } from "./schema/member.ts";

const connection = new Database({
  storage: sqliteAdapter({ default: new DatabaseDriver }, {
    dbName: "app",
  }),
});

export const database = Object.assign(connection, {
  member: connection.collection<Member>("member", memberSchema),
});

Conceitos centrais

  • Database centraliza configuração, adapter, logger e cache de collections.
  • Schema define estrutura, defaults, normalização e validação dos documentos.
  • Collection expõe a API de CRUD usada pela aplicação.
  • StorageAdapter troca o backend sem mudar o contrato principal da biblioteca.

Importante sobre consultas e paginação

Mesmo usando MongoDB ou Mongoose, operações como find(), countDocuments(), deleteMany() e paginate() continuam seguindo a semântica do Tile. Se você precisa de queries avançadas, agregações ou filtros executados diretamente pelo banco, trate o driver/ODM nativo no ponto específico da aplicação.

Trilhas de leitura

On this page