couchdb offset:我没有得到任何结果

couchdb offset:我没有得到任何结果,couchdb,Couchdb,我使用POST方法向Couchdbw发出一个ajax请求,给出了我想要检索的文档的键列表 除了因为偏移量设置在最后一行,所以我得到了0行之外,一切似乎都正常工作 这意味着: 我与couchdb服务器(cloudant)通信良好 POST方法有效 它似乎检索列表,但只是给出最后一个元素的offest,即空列表 此外,尝试以不同的方式排列结果也没有成功 riListvar是这样的(来自google chrome开发工具): 这基本上是相同的 var riList=["Wire line diamon

我使用POST方法向Couchdbw发出一个ajax请求,给出了我想要检索的文档的键列表

除了因为偏移量设置在最后一行,所以我得到了0行之外,一切似乎都正常工作

这意味着:

  • 我与couchdb服务器(cloudant)通信良好
  • POST方法有效
  • 它似乎检索列表,但只是给出最后一个元素的offest,即空列表
  • 此外,尝试以不同的方式排列结果也没有成功

    riList
    var是这样的(来自google chrome开发工具):

    这基本上是相同的

    var riList=["Wire line diamond core drilling rig", "VUA - isotope geochemistry laboratory","Volcanologic and Seismological Observatories","VESOG","Utrecht University - TecLab, Tectonic Laboratory","Utrecht University - Experimental and Analytical Laboratories"];
    
    这是密码

                var riList= ListOfRU.pluck('ri_name');
                var queryParams={"keys":riList};
                var riResponseList=[];
                var ajaxURL= ('_view/'+ self.parentMcDropDownValue);
                console.log(ajaxURL, queryParams);
                $.ajax({ //retrieve and show on map LABORATORY coordinates
                    async: true, 
                    url: ajaxURL,
                    type:"POST",
                    data:JSON.stringify(queryParams),
                    dataType: 'json',
                    timeout:5000,
                    success:function(response){
                        console.log("response",response);
                        riResponseList=response.rows;
                        },
                    error:function(){
                        alert('fetching error');
                        }
                    });
    
    chrome开发者工具输出

    response 
    Object
    offset: 194
    rows: Array[0]
    total_rows: 194
    __proto__: Object
    
    正如您在chrome devtools的输出中看到的,偏移量是194,因此我有一个0行的数组,因为它从最后一个键开始


    有什么想法吗?

    当我发现bug时,我很想删除这个问题

    但最后我决定让它,并解释什么是错误的

    如果你觉得它应该被删除,请激发这一点,我会删除它

    因此,我的问题的答案非常简单:我检索的键不是我用
    “keys”
    参数选择的键

    错误确实出现在
    map
    函数中,我在该函数中写道:

    //WRONG ONE!!
    function(doc){
        if(doc.doctype=='ri'){
            emit(doc.ri, doc);
        }
    }
    
    而不是

    //RIGHT ONE!!
    function(doc){
        if(doc.doctype=='ri'){
            emit(doc.ri_name, doc);// RI_NAME INSTEAD OF RI!!!!!
        }
    }
    
    因此,教训是:


    当你得到一个等于数组长度的偏移量时,检查结果是否真的是你想用map函数得到的结果。

    谢谢你没有删除这个。我现在的结果有一个偏移量,我正试图找出为什么。。。偏移量参数到底说了什么?
    //RIGHT ONE!!
    function(doc){
        if(doc.doctype=='ri'){
            emit(doc.ri_name, doc);// RI_NAME INSTEAD OF RI!!!!!
        }
    }