我正在从我的Web应用程序从SQL迁移到Couch DB,这是我的第一个应用程序。
虽然我不能说为什么我不喜欢SQL查询,不确定我不喜欢,但发出CURL请求来访问我的数据库的想法必须比使用PHPs PDO更好。
我花了一天半多一点的时间试图熟悉沙发DB HTTP API。我不能声称我已经彻底阅读了 API,但是谁在开始编码之前彻底阅读了 API。所以我的,可能很愚蠢的问题是 - how do I pass an variable other than doc to a map function while making a http request to the view.
API 明确表示映射函数只接受一个参数,即"doc",在这种情况下,下面的函数本身是错误的,但我在 API 中找不到任何部分让我使用最终用户提供的输入查询数据库。
我的地图功能是
function(doc, pid2){
if (doc.pid === pid2)
{
emit(doc._id, doc) ;
}
}
PID2 是由前端用户提供的号码。
<?php
$pid2 = file_get_contents(facebook graphi api call_returns a Profile ID) ;
$user_exists = HTTP request to couch DB view to return
in JSON format the list of JSON documents with pid = $pid2
?>
让你的视图发出以doc.pid
为键
function(doc) {
emit(doc.pid, doc);
}
并使用 key
参数检索正确的文档:
http://localhost:5984/<database>/_design/<designdoc>/_view/<viewname>?key=<pid2>
这应该返回所有带有 doc.pid === pid2
的文档。