CouchDB视图可通过不区分大小写的电子邮件查找用户

时间:2020-07-20 11:47:57

标签: php curl couchdb cloudant

我在_user数据库中有一个CouchDB视图,可以在其中根据用户的电子邮件地址查找用户(user.email是其用户文档的一部分)。

{
  "_id": "_design/find-user",
  "views": {
    "email->doc": {
      "map": "function (doc) {\n  emit(doc.email, doc);\n}"
    }
  },
  "language": "javascript"
}

我正在通过PHP使用以下curl URL来访问匹配的用户:

curl_setopt($ch, CURLOPT_URL, $url . '/_users/_design/find-user/_view/email->doc?key="' . $email . '"');

这有效,但是区分大小写,我不希望这样。例如,我需要$email = TesT@example.com才能在数据库中找到tESt@example.com

我已经尝试了以下方法,但这只会转换输出。

function (doc) {
  emit(doc.email.toLowerCase(), doc);
}

1 个答案:

答案 0 :(得分:0)

toLowerCase()使您处在正确的轨道上。您唯一缺少的是您还必须转换搜索词。

不要搜索"TEST@example.com",而是搜索strtolower("TEST@example.com")

curl_setopt($ch, CURLOPT_URL, $url . '/_users/_design/find-user/_view/email->doc?key="' . strtolower($email) . '"');