Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 为什么我对Cloudant的多键GET查询返回所有文档?_Json_Couchdb_Cloudant - Fatal编程技术网

Json 为什么我对Cloudant的多键GET查询返回所有文档?

Json 为什么我对Cloudant的多键GET查询返回所有文档?,json,couchdb,cloudant,Json,Couchdb,Cloudant,刚开始 我对cloudant有一个看法,即bywords,它提供了所有文档及其关键字的视图。看起来是这样的: bywords = function(doc) { var tokens, re1, uniq = function(a) { var o = {}, i = 0, L = a.length, r = []; for (; i < L; i++) { if (a[i] !== '

刚开始

我对cloudant有一个看法,即bywords,它提供了所有文档及其关键字的视图。看起来是这样的:

bywords = function(doc) {
    var tokens, re1,
        uniq = function(a) {
            var o = {}, i = 0, L = a.length, r = [];
            for (; i < L; i++) {
                if (a[i] !== '' && a[i] !== ' ') {
                    o[a[i]] = a[i];
                }
            }
            for (i in o) { r.push(o[i]); }
            return r;
        };

    if ( doc.observation && doc.observation !== '') {
        tokens = uniq(doc.observation.split(/( +)|\./));
        if (tokens && tokens.length > 0) {
             tokens.map(function(token) {
                 emit(token, null);
             });
         }
    }
};
....
{
 "id": "doc-095141",
 "key": "Vivamus",
 "value": null
},
{
 "id": "doc-102754",
 "key": "Vivamus",
 "value": null
},
{
 "id": "doc-094047",
 "key": "volutpat",
 "value": null
},
{
 "id": "doc-092332",
 "key": "vulputate",
 "value": null
},
....
视图中有一个项目,针对文档特定字段中的每个单词,针对每个文档

好的

按键查询工作得很好。我是说,这个:

https://myserver.cloudant.com/fop/_design/baseViews/_view/bywords?key=%22amet%22

…从视图中返回预期的项目子集。这是一个少数项目,不到10个

另一方面,多键查询返回视图中的所有项。如果我这样做:

https://.../_design/baseViews/_view/bywords?keys=%5B%22amet%22%5D

…然后我得到每一件东西。很多很多项目。不是我想要的

如何在GET中指定多个键?

我不相信我想要
startkey
endkey
。我希望在我指定的集合中存在具有键的项


附:我知道。我还没试过。通过阅读文档,我应该能够在查询字符串中执行GET并指定多个键


编辑

我刚试过POST选项。它按预期工作。换句话说,此HTTP请求:

POST https://myserver.cloudant.com/fop/_design/baseViews/_view/bywords 
...headers here...

{"keys":["amet"]}
..返回我期望它返回的内容:少量匹配的文档


因此,我不再被阻塞,但用于指定键的GET/URI编码形式在Cloudant上不起作用,这对我来说仍然是一个谜

我记得有这个问题,我想这是CouchDB中的一个老错误。你正在运行哪个版本的沙发?带有
键的
GET
参数现在在1.2.0中对我有效。IIRC这个bug出现在1.0.x中

我记得有这个问题,我想这是CouchDB中的一个老bug。你正在运行哪个版本的沙发?带有
键的
GET
参数现在在1.2.0中对我有效。IIRC漏洞出现在1.0.x中

我正在使用Cloudant.com。我不知道他们正在运行哪个版本的CouchDB。只需点击服务器的
/
,它就会报告版本。
{“CouchDB”:“欢迎”,“版本”:“1.0.2”,“cloudant_build”:“613”}
那么,这个bug可能仍然存在于cloudant中?你有没有关于那个bug的jira链接?没有,我不知道我是否确认过。刚升级就不见了:)我正在使用Cloudant.com。我不知道他们正在运行哪个版本的CouchDB。只需点击服务器的
/
,它就会报告版本。
{“CouchDB”:“欢迎”,“版本”:“1.0.2”,“cloudant_build”:“613”}
那么,这个bug可能仍然存在于cloudant中?你有没有关于那个bug的jira链接?没有,我不知道我是否确认过。刚升级就不见了:)