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

gopyfrb3  于 2022-12-09  发布在  CouchDB
关注(0)|答案(1)|浏览(116)

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

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

我使用下面的curl url通过PHP访问匹配的用户:

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);
}
l7mqbcuq

l7mqbcuq1#

你在toLowerCase()上做对了,唯一缺少的是你还必须转换你的搜索词。
不要搜索"TEST@example.com",而是搜索strtolower("TEST@example.com")

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

相关问题