Olá Marcos! Como vai?
Para garantir que certos campos sejam únicos no banco de dados usando Mongoose, você pode utilizar a propriedade unique
no seu esquema. Isso é útil para evitar duplicidade em campos como o registro de médicos e enfermeiros. Vou te mostrar como implementar isso.
No seu esquema, você pode definir o campo que precisa ser único da seguinte forma:
const EnfermeirosSchema = new mongoose.Schema({
id: { type: mongoose.Types.ObjectId },
nome: {
type: String,
required: [true, "O nome do(a) enfermeiro(a) é obrigatório"],
},
idade: { type: Number },
coren: {
type: String,
required: [true, "O Coren do enfermeiro(a) é obrigatório"],
unique: true, // Adiciona a restrição de unicidade
match: /8/,
},
}, { versionKey: false });
const enfermeiros = mongoose.model("enfermeiros", EnfermeirosSchema);
export default enfermeiros;
Passos importantes:
Adicionar unique: true
: Isso informa ao Mongoose que o campo deve ser único. No exemplo acima, o campo coren
foi configurado para ser único.
Tratar Erros de Validação: Caso você tente inserir um valor duplicado, o Mongoose lançará um erro. Você pode tratar esse erro no seu manipuladorDeErros.js
para retornar uma mensagem apropriada ao usuário.
Índices no MongoDB: A propriedade unique
cria um índice único no MongoDB. Se você já tiver dados duplicados no banco, pode ser necessário remover esses duplicados antes de aplicar essa restrição.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.