2017-07-27 4 views
1

J'essaie de mettre en œuvre une fonctionnalité de recherche d'utilisateur à saisie semi-automatique où vous pouvez rechercher quelqu'un avec son nom ou son adresse e-mail.Requête contre deux valeurs sans duplication

fonction Ma carte ressemble actuellement à ceci:

function (doc) { 
    if (doc.name && doc.email) { 
    emit(doc.name, doc.id); 
    emit(doc.email, doc.id); 
    } 
} 

mais cela signifie que si quelqu'un est la recherche d'un utilisateur dont le nom commence de la même manière que leur adresse e-mail, dans les étapes inital de la demande I » m obtenir deux résultats pour le même utilisateur.

Existe-t-il un moyen pour que je puisse interroger le nom d'un utilisateur, et si cela ne correspond pas, puis seulement interroger l'email?

Répondre

0

Quelque chose comme cela devrait fonctionner:

function (doc) { 
    if (doc.name) { 
    emit(doc.name, doc.id); 
    } 

    else if (doc.email) { 
     emit(doc.email, doc.id); 
    } 

    else {console.log("No Match")} 

} 
+0

Votre aide est très appréciée, je vous remercie, mais tous les documents auront les deux domaines, je veux plutôt être en mesure de rechercher les deux champs sans documents en double retour si les deux le nom et l'adresse e-mail – abinocoe