我在_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);
}
答案 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) . '"');