2011-03-21 3 views
1

J'ai une vue CouchDB à partir de laquelle j'émets trois ou quatre champs.CouchDB voir la question - comment retourner "" (chaîne vide) au lieu de null?

Si le champ PHONE_MOBILE est vide pour un enregistrement donné, la sortie de vue contient null

Au lieu de cela, je voudrais qu'il émette « » (chaîne/rien-à-dire vide)

Quelle est la meilleure façon de atteindre cet? Voici le code de la vue:

{ 
    "_id": "_design/blah", 
    "_rev": "20-e07e50de179d0df5e7bce52fdb7ee4d2", 
    "views": { 
     "by_surname3": { 
      "map": "function(doc) { if (doc.SURNAME) emit(doc.SURNAME.toLowerCase(), {SURNAME: doc.SURNAME, FIRSTNAME: doc.FIRSTNAME, PHONE_MOBILE: doc.PHONE_MOBILE}) }" 
     } 
    } 
} 

Merci

Répondre

3

Vous pouvez utiliser quelque chose comme ceci:

function(doc) { 
    if (doc.SURNAME) 
    emit(doc.SURNAME.toLowerCase(), { 
     SURNAME: doc.SURNAME, 
     FIRSTNAME: doc.FIRSTNAME, 
     PHONE_MOBILE: (doc.PHONE_MOBILE ? doc.PHONE_MOBILE : "") 
    }) 
} 

Ou, si vous préférez, l'opérateur ou pour fournir une valeur par défaut.

function(doc) { 
    if (doc.SURNAME) 
    emit(doc.SURNAME.toLowerCase(), { 
     SURNAME: doc.SURNAME, 
     FIRSTNAME: doc.FIRSTNAME, 
     PHONE_MOBILE: (doc.PHONE_MOBILE || "") 
    }) 
} 
+0

Ajouté une version similaire – JasonSmith

Questions connexes