임베디드 문서가 존재하지 않거나 존재하는 경우 문서가 포함 된 문서의 유효성을 검사하는 Mongodb의 기본 유효성 검사 규칙을 제안하려고합니다. 하나 이상의 필드가 필수적으로 표시됩니다.임베디드 문서에 대한 Mongodb 기본 유효화
아래 예제가 있습니다. JSON 문서에는 user
문서가 삽입되어 있습니다. 이 user
이 존재하지 않거나 존재하는 경우 필수 입력란 name
이 있어야합니다. 내가 db.testschema.insert({})
처럼 내 컬렉션 testschema
에 빈 JSON 문서를 삽입 할 때
"validator" : {
"$or" : [
{
"user" : {
"$exists" : "false",
"$type" : "null"
}
},
{
"user.name" : {
"$type" : "string",
"$exists" : "true"
}
}
]
}
는, 나는 표준 오류가있는 아래에 잘못된 및/또는 왜 무엇인지 말해주지 않습니다 얻을. 내 문서에 name
필드가 포함 된 포함 된 문서 user
이 포함되어 있거나 포함 된 문서가 전혀 포함되어 있지 않아서 가능합니다.
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 121,
"errmsg" : "Document failed validation"
}
})
유효성 검사기 내부에서 사용되는 연산자가 정확합니까?
와우 위해 작동 할 그 날 너무 바보입니다! 나는 db.getCollectionInfos ({name : 'testschema'}) [0] .options.validator' 명령을 실행하여 이미 유효성 검사 규칙이 설정되어 있는지 확인하기 위해 큰 따옴표를 어떻게 사용했는지 기억합니다. Mongo 쉘은이 부울을 래핑합니다 값을 큰 따옴표로 묶어 라! 이 좋은 팁 주셔서 감사합니다! 매우 감사. – asgs
도와 드리겠습니다! – daemon24