Como no MongoDB 3.2, não há comentários sobre o motivo da falha na validação do documento: a expressão geral de validação atualmente é avaliada como Verdadeiro ("OK") ou Falso ("Falha na validação do documento"). O comportamento da validação pode ser ajustado com as opções de configuração validationAction
(erro / aviso) e validationLevel
(estrito / moderado / desativado), mas isso não fornece nenhum contexto adicional para falhas na validação.
Se você deseja obter um feedback mais detalhado, a abordagem recomendada seria adicionar lógica de validação ao seu aplicativo, em vez de confiar apenas nas verificações do servidor. Mesmo com a validação do lado do servidor, muitas verificações são mais bem executadas na lógica de negócios do aplicativo para minimizar as viagens de ida e volta ao servidor de banco de dados e fornecer feedback mais responsivo ao usuário final.
Por exemplo, a entrada do usuário para um aplicativo Web (campos obrigatórios, formatos de campo, ...) deve ser validada no navegador antes de ser enviada ao seu aplicativo ou tentar inserir / atualizar no banco de dados.
No entanto, faz sentido validar em vários níveis para garantir a qualidade dos dados e algum contexto para diagnosticar falhas de validação seria muito útil. Há uma solicitação de recurso aberto relevante que você pode assistir / votar no rastreador de problemas do MongoDB: SERVER-20547: exponha o motivo pelo qual uma operação falha na validação do documento .
Para obter mais informações, também pode estar interessado em Validação de documentos - Parte 1: Adicionando a quantidade certa de controle sobre seus documentos . Isso destaca alguns dos prós e contras gerais de validação de documentos como no MongoDB 3.2, e inclui uma tabela de referência para o resultado com base em validationAction
e validationLevel
opções de configuração.
mongo-schemer
Node.js, que se baseia no AJV (outro validador de esquema JSON) .É claro que a resposta original está correta, lidar com a validação antes de chegar ao banco de dados é absolutamente uma prática recomendada, mas como uma questão prática, se você precisar examiná-la como agora, pode remover temporariamente a validação do esquema e ver o que mostra na coleção.
Se um campo foi obrigatório, mas ele aparece ausente, vazio ou deformado, pelo menos, restringe sua pesquisa. Se os dados parecerem corretos, verifique as validações especificadas no Esquema.
fonte