2017-10-03 3 views
1

J'ai (j'ai essayé) d'écrire une vue pour identifier les documents avec un attribut "otherCauseForRelease" ET cet attribut est rempli. Mon code View est:CouchDB: Afficher pour retourner uniquement certains documents?

function (doc) { 
if(doc.payload.otherCauseForRelease.length > 5); emit(doc.payload.otherCauseForRelease); 
} 

Cependant, l'ensemble de retour comprend des documents avec des valeurs d'attributs comme « » (une double cotation ouverte suivie d'une double cotation à proximité). Comment puis-je exclure ces documents de mes résultats?

Répondre

1

Essayez avec celui-ci ici:

fonction

(doc) { if (doc.payload.otherCauseForRelease.length> 5) Emit (doc.payload.otherCauseForRelease); }

Vous ajoutez fondamentalement un ; supplémentaire à la fin de votre if. Ce faisant, il n'a pas considéré la déclaration suivante comme le corps du si.

Un autre exemple avec des accolades:

function (doc) { 
if(doc.payload.otherCauseForRelease.length > 5){ 
    emit(doc.payload.otherCauseForRelease); 
    } 
} 
+0

Oui, il semble que j'avais une syntaxe erronée. La solution d'Alexis a fonctionné. En outre, j'ai été en mesure d'appliquer des étiquettes de champ en enfermant mon "emit" dans une autre paire d'accolades: ----- {emit ({"Primary": doc.payload.causeForRelease, "Secondary": doc.payload. otherCauseForRelease});} – CarCrazyBen

+0

Acceptez la réponse si cela vous a aidé –