这是我的小JSON文件。我希望validate_doc_update函数要求目标数组中的地址字段 { "姓名":"某人", " secondary_id":" 1111", "目的地":[ { "地址":"某事" }] }
我试过这个(当然不行):
function(newDoc, oldDoc, userCtx){
if(!newDoc.destination.address){
throw({forbidden:'doc.address is required'});
}
}
有没有办法要求数组中的字段?或者couchDB不允许吗?
答案 0 :(得分:0)
假设destination
数组中的任何对象都可以包含address
以便验证成功,您可以使用以下验证函数:
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
,请使用以下验证函数:
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'});
}