1
resposta

[Dúvida] Caso queira usar o unique como validação, como faria?

Estou estudando o curso e fazendo o projeto baseado em uma clinica médica, estou enfrentando uma dificuldade pois alguns campos de Médicos e Enfermeiros precisam ser unicos para não ter duplicidade no Bancos de Dados, como implimentaria isto no projeto? tentei da forma Unique, e não consegui

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

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:

  1. Adicionar unique: true: Isso informa ao Mongoose que o campo deve ser único. No exemplo acima, o campo coren foi configurado para ser único.

  2. 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.

  3. Í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 ✓.