2016-09-15 2 views
0

여기에 내가 가지고있는 작은 JSON 파일이 있습니다. validate_doc_update 함수가 대상 배열의 주소 필드를 필요로합니다.
는 { "이름": "누군가" "secondary_id": "1111", "대상"[ { "주소": "뭔가" }] 은}CouchDB에서 배열의 필드를 어떻게 요구합니까?

나는 이것을 시도 (물론 작동하지 않습니다) :

function(newDoc, oldDoc, userCtx){ 
if(!newDoc.destination.address){ 
throw({forbidden:'doc.address is required'}); 
} 
} 

배열에 필드가 필요한 방법이 있습니까? 아니면 couchDB가 그것을 허용하지 않습니까? 당신이 address을 포함하도록 destination 배열의 모든 객체가 필요한 경우

function(newDoc, oldDoc, userCtx) { 
    if(newDoc.destination && newDoc.destination.length > 0){ 
    for(var i = 0; i < newDoc.destination.length; i++){ 
     if(newDoc.destination[i].address) return; 
    } 
    } 
    throw({forbidden:'doc.address is required'});  
} 

은의를 사용하십시오 destination 배열에있는 모든 개체가 성공하기 위해 검증 address를 포함 할 수 있다고 가정

답변

0

, 다음과 같은 유효성 검사 기능을 사용할 수 있습니다 다음과 같은 유효성 검사 함수가 있습니다.

function(newDoc, oldDoc, userCtx) { 
    if(newDoc.destination && newDoc.destination.length > 0){ 
    for(var i = 0; i < newDoc.destination.length; i++){ 
     if(!newDoc.destination[i].address) throw({forbidden:'doc.address is required'}); 
    } 
    return; 
    } 
    throw({forbidden:'doc.address is required'}); 
} 
+0

첫 번째 것은 내가 찾고있는 것입니다. 그것은 완벽하게 작동했습니다. 나는 그런 간단한 해결책을 생각하지 않았다는 것을 믿을 수 없다. 나는 나 자신을 위해 물건을 지나치게 복제하고 있었다. 고맙습니다. – Anna

관련 문제