Adapters
Mongoose
Use o Tile Database por cima de uma instância mongoose ou de uma Connection.
Mongoose adapter
O adapter de Mongoose aceita uma instância mongoose ou uma Connection compatível.
Isso é útil quando a aplicação já usa Mongoose e você quer manter a API do Tile para schemas, collections e operações CRUD.
Exemplo de uso
import mongoose from "mongoose";
import { Database } from "@tile.js/database";
import { mongooseAdapter } from "@tile.js/database/adapters/mongoose";
import { memberSchema, type Member } from "./schema/member.ts";
const connection = new Database({
storage: mongooseAdapter(mongoose, {
uri: "mongodb://127.0.0.1:27017",
dbName: "app",
manageConnection: true,
}),
});
export const database = Object.assign(connection, {
member: connection.collection<Member>("member", memberSchema),
});Configuração
Prop
Type
O que o adapter aceita
- uma instância
mongoose - uma
Connection - qualquer objeto compatível com o shape esperado pelo adapter
Quando dbName está definido e a conexão suporta useDb, o adapter seleciona a database usando cache interno da própria connection.
Lifecycle
- com instância
mongoose,connect()pode chamarmongoose.connect(uri, options) - com
Connection,connect()pode chamaropenUri(uri, options) - se a conexão já existir, o adapter apenas aguarda a instância ficar pronta
disconnect()delega paradisconnect(),close()oudestroy(), conforme o objeto recebido
Mongoose aqui não vira Model API
Mesmo sobre Mongoose, a semântica principal continua vindo do Tile: Schema, Collection, filtros simples, operadores suportados em updateOne() e paginação seguem as regras da biblioteca.
Limitações importantes
Assim como no adapter de MongoDB:
find()continua operando pela semântica do Tilepaginate()não vira paginação nativa do Mongoose- filtros complexos do Mongoose não passam a existir automaticamente