1
resposta

Atualizar ou inserir novos valores no campo estado civil pelo NoSQLBooster

Bom dia

Referente ao curso MongoDB: validando dados, na parte 3.Criando validação de esquema.

estado_civil: {
                bsonType: "string",
                enum: ["Solteiro(a)", "Casado(a)", "Separado(a)", "Divorciado(a)", "Viuvo(a)"],
                description: "informar corretamente o estado civil do cliente"
              },

Nessa parte do código, não há a opção de "união estavel"para o o cliente Caue, que a professora usa como exemplo.

Pois eu tentei colocar manualmente e salvar, para depois adicionar os dados do Caue novamente, mas da erro, e na mensagem diz que o valor "união estavel", não consta dentro do array do estado_civil, mesmo ter colocado essa informação dentro do array.

Caso eu queira adicionar esse valor dentro do array, simplesmente coloco esse valor e salvo, ou tem que criar uma nova query com o novo valor?

1 resposta

Olá Alan, tudo bem?

Na parte do código que você mencionou, realmente não há a opção "união estável" no campo estado_civil. Se você tentar adicionar manualmente esse valor e salvar, ocorrerá um erro porque o valor não está presente no array enum definido no esquema.

Para adicionar "união estável" à lista, você precisa criar uma nova query para atualizar o esquema. Você pode fazer isso usando o método updateOne() do MongoDB.

db.seuColecao.updateOne(
  { _id: seuId }, // Filtre o documento que você deseja atualizar
  { $addToSet: { "estado_civil.enum": "união estável" } } // Adicione o novo valor ao array enum
)

Deixo o link da documentação para consulta. Ele está em inglês, mas você pode utilizar o tradutor automático do navegador.

Lembre-se de trocar "suaColecao" pelo nome da sua coleção e "seuId" pelo ID do documento que você quer mudar.

Espero ter ajudado.

Se surgir alguma dúvida, é só compartilhar no fórum.

Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!