View couchDB查询

View couchDB查询,view,map,couchdb,View,Map,Couchdb,我是一个couchDB noob,我没有运气从我的观点中得到过滤后的回应。无论是什么样的问题,我总是能得到整个视图,这毫无意义 例如,在用户数据库中。。。我尝试了这个映射函数,只是想了解它是如何工作的 login: { map: function(doc){ if (doc.firstName && doc.lastName) emit(doc.firstName, doc.lastName);

我是一个couchDB noob,我没有运气从我的观点中得到过滤后的回应。无论是什么样的问题,我总是能得到整个视图,这毫无意义

例如,在用户数据库中。。。我尝试了这个映射函数,只是想了解它是如何工作的

    login: {
        map: function(doc){
            if (doc.firstName && doc.lastName)
                emit(doc.firstName, doc.lastName);
        }
    }
教科书的东西,对吗

但是当我发布一个类似这样的查询时

    {key: ["Mo"]} ... or ... {key:"Mo"}
我得到了一切。。。整个景色!即使这样

    {startkey:["Mo"], endkey:["Mo"]} ... or ... {startkey:"Mo", endkey:"Mo"}
将查询编码到url并执行GET将得到相同的响应


我该怎么做才能让它工作?什么是特色酱汁?我需要牺牲一只动物吗?还是我放松得不够努力?

所以,为了清楚起见,您的URL应该如下所示:

http://your.server/your_db/_design/view_id/_view/view_name?key="Mo"

大多数浏览器都会将这些
正确编码为
%22
s

您应该阅读,您的示例中没有一个是couchdb查询。您在哪里发现,例如,
{startkey:“mo”,endkey:“mo”}
是有效的查询?文档显示了一个“keys”的示例“json查询,就在那个页面上,所以我认为所有查询都可以这样做,这很有意义,否则人们需要在QueryString中发送密码和其他敏感数据。。。从安全角度看,这太糟糕了。。。或者我错了?您不能使用POST查询视图,除了通过
{“keys”:[]}
请求多个文档键之外。您需要将GET与querystring参数一起使用。另外,CouchDB有,所以无论如何你都不应该使用视图来处理登录。你到底在用什么URL?POST比GET更安全,你可以接受。关于查询,页面上显示“”,则不能使用POST。我所知道的唯一例外是
(请注意
s
),如同一页所述。然后,查询一系列键,添加
?startkey=KEY1&endkey=KEY2
。嗯