我正在尝试实施自动完成用户搜索功能,您可以搜索具有其姓名或电子邮件地址的人。
我的地图功能目前看起来像这样:
function (doc) {
if (doc.name && doc.email) {
emit(doc.name, doc.id);
emit(doc.email, doc.id);
}
}
但这意味着,如果某人正在搜索名称以与其电子邮件地址相同的方式开始的用户,则在请求的初始阶段我会为同一用户获得两个结果。
有没有办法可以查询用户名,如果不匹配,那么只有查询电子邮件?
答案 0 :(得分:0)
这样的事情应该有效:
function (doc) {
if (doc.name) {
emit(doc.name, doc.id);
}
else if (doc.email) {
emit(doc.email, doc.id);
}
else {console.log("No Match")}
}