CRUD
Operações de criação, consulta, atualização e remoção de documentos
CRUD
Após criar uma Collection, você pode começar a inserir, consultar, atualizar e remover documentos.
Todos os métodos são assíncronos e retornam uma Promise.
Documento de exemplo
Nos exemplos desta página será utilizada a seguinte Collection.
import { Database, Schema } from "@tilejs/database";
interface Member {
_id?: string;
name: string;
email: string;
age?: number;
verified?: boolean;
}
const memberSchema = new Schema<Member>({
name: {
type: String,
required: true,
},
email: {
type: String,
unique: true,
},
age: Number,
verified: {
type: Boolean,
default: false,
},
});
const connection = new Database();
export const database = Object.assign(connection, {
members: connection.collection<Member>("members", memberSchema),
});Inserindo documentos
insertOne()
Insere um único documento.
const member = await database.members.insertOne({
name: "Israel",
email: "israel@gmail.com",
age: 21,
});
console.log(member);Retorno:
{
_id: "68526dba05db8ec36dcb33d8",
name: "Israel",
email: "israel@gmail.com",
age: 21,
verified: false,
__v: 0,
createdAt: Date,
updatedAt: Date
}Buscando documentos
findOne()
Retorna o primeiro documento encontrado.
const member = await database.members.findOne({
email: "israel@gmail.com",
});find()
Retorna todos os documentos que correspondem ao filtro.
const members = await database.members.find({
verified: true,
});Também é possível buscar todos os documentos.
const members = await database.members.find();exists()
Verifica se um documento existe.
const exists = await database.members.exists({
email: "israel@gmail.com",
});Retorno:
truecountDocuments()
Conta quantos documentos existem na Collection.
const total = await database.members.countDocuments();Atualizando documentos
updateOne()
Atualiza o primeiro documento encontrado.
await database.members.updateOne(
{
email: "israel@gmail.com",
},
{
verified: true,
}
);Também é possível utilizar operadores.
await database.members.updateOne(
{
email: "israel@gmail.com",
},
{
$set: {
verified: true,
},
$inc: {
age: 1,
},
$unset: ["note"],
}
);Operadores suportados
Prop
Type
Removendo documentos
deleteOne()
Remove o primeiro documento encontrado.
await database.members.deleteOne({
email: "israel@gmail.com",
});deleteMany()
Remove vários documentos.
await database.members.deleteMany({
verified: false,
});Remover todos.
await database.members.deleteMany();Paginação
paginate()
Retorna documentos paginados.
const result = await database.members.paginate({
page: 1,
limit: 10,
});Também é possível ordenar.
const result = await database.members.paginate({
page: 1,
limit: 10,
sort: {
createdAt: "desc",
},
});Retorno:
{
items: [...],
total: 53,
page: 1,
limit: 10,
pages: 6
}Descrevendo o Schema
A Collection pode retornar informações do Schema.
console.log(database.members.describeSchema());Resultado:
{
fields: {
_id: {...},
name: {...},
email: {...},
age: {...},
verified: {...},
__v: {...}
},
timestamps: true,
collection: undefined
}Resumo dos métodos
Prop
Type
Próximos passos
Agora você já conhece todas as operações básicas disponíveis no TileJS Database.
Consulte a documentação do Schema para conhecer todas as validações, índices e opções disponíveis para os campos.