Introdução
Escolha o backend de persistência certo sem trocar a API principal do Tile.
Adapters
O sistema de adapters separa a API de documentos do backend de persistência.
Em outras palavras, Database, Schema e Collection continuam os mesmos, enquanto o storage pode ser local, MongoDB, Mongoose ou qualquer implementação compatível com StorageAdapter.
Comparação rápida
| Adapter | Quando usar | Dependências extras | Persistência de schema | Lifecycle próprio |
|---|---|---|---|---|
| Default (BSON local) | desenvolvimento local, CLIs, apps pequenas e médias | nenhuma | _schema.json em disco | flush local |
| MongoDB | quando você quer usar o driver oficial | mongodb | _tile_schemas opcional | manageClient |
| Mongoose | quando o projeto já depende de Mongoose | mongoose | _tile_schemas opcional | manageConnection |
| SQLite (Node.js) | quando você quer usar o driver oficial | better-sqlite3 | _tile_schemas opcional | manageConnection |
| SQLite (Bun) | quando você quer usar o driver oficial | bun:sqlite3 | _tile_schemas opcional | manageConnection |
| Custom | integrações próprias | depende do seu backend | depende do adapter | depende do adapter |
Formas de importar
import { defaultAdapter } from "@tile.js/database";
import { mongodbAdapter } from "@tile.js/database/adapters/mongodb";
import { mongooseAdapter } from "@tile.js/database/adapters/mongoose";
import { sqliteAdapter } from "@tile.js/database/adapters/sqlite";import {
defaultAdapter,
mongodbAdapter,
mongooseAdapter,
sqliteAdapter,
} from "@tile.js/database/adapters";Semântica do Tile continua valendo
Os adapters trocam o backend, mas não transformam a biblioteca em um ODM nativo do MongoDB ou do Mongoose. Filtros continuam simples, e operações como find(), countDocuments(), deleteMany() e paginate() seguem a semântica do Tile.
Qual adapter escolher?
Default (BSON local)
Melhor opção para começar, prototipar, rodar localmente e armazenar dados junto da aplicação.
MongoDB
Boa escolha quando você já usa o driver oficial e quer manter a API do Tile por cima.
Mongoose
Útil quando o projeto já orbita em torno do ecossistema Mongoose.
Custom
Ideal quando você precisa persistir em outro backend mantendo o contrato do Tile.
SQLite
Ideal para armazenamento local de dados em um banco de dados SQLite.
O que permanece igual entre adapters
Schemacontinua sendo o centro da validação e normalização_id,__ve timestamps continuam seguindo as regras do Tilecreate,findOne,updateOne,upsert,deleteManyepaginatecontinuam com a mesma APIcollection()emodel()continuam funcionando da mesma forma