查询两个值而不重复

时间:2017-07-27 11:31:59

标签: view couchdb nosql

我正在尝试实施自动完成用户搜索功能,您可以搜索具有其姓名或电子邮件地址的人。

我的地图功能目前看起来像这样:

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

但这意味着,如果某人正在搜索名称以与其电子邮件地址相同的方式开始的用户,则在请求的初始阶段我会为同一用户获得两个结果。

有没有办法可以查询用户名,如果不匹配,那么只有查询电子邮件?

1 个答案:

答案 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")}

}