Escrita, update e remoção
Crie documentos, atualize com operadores, faça upsert e remova registros com segurança.
Escrita, update e remoção
create()
Insere um novo documento após aplicar defaults, normalização e validação.
const member = await database.member.create({
name: "Ada Lovelace",
email: "ADA@EXAMPLE.COM",
});Retorno esperado:
{
_id: "68526dba05db8ec36dcb33d8",
name: "Ada Lovelace",
email: "ada@example.com",
__v: 0,
createdAt: Date,
updatedAt: Date,
}updateOne()
Atualiza o primeiro documento encontrado e retorna o documento atualizado.
Merge direto
const updated = await database.member.updateOne(
{ email: "ada@example.com" },
{ verified: true },
);Usando operadores
const updated = await database.member.updateOne(
{ email: "ada@example.com" },
{
$set: {
verified: true,
name: "Ada Byron",
},
$inc: {
visits: 1,
},
$unset: ["note"],
},
);Operadores suportados
Prop
Type
upsert()
Atualiza quando encontra um documento e cria um novo quando nada é encontrado.
const member = await database.member.upsert(
{ email: "ada@example.com" },
{
name: "Ada Lovelace",
verified: true,
},
);Como o create implícito acontece no upsert
Quando o documento ainda não existe, o Tile cria um novo objeto combinando o filter com o data informado no upsert().
deleteOne()
Remove o primeiro documento correspondente ao filtro:
await database.member.deleteOne({
email: "ada@example.com",
});deleteMany()
Remove vários documentos:
await database.member.deleteMany({
verified: false,
});Sem filtro, remove tudo da collection:
await database.member.deleteMany();Não mutacione _id em updates
Evite alterar _id em updateOne(). O comportamento atual da biblioteca não trata isso como uma renomeação segura do registro.