我向couchdb使用POST方法发出ajax请求,给出了我想要检索的文档的键列表。
除了我得到0行因为偏移量设置在最后一行之外,所有东西似乎都能正常工作。
所以这意味着:
此外,尝试以不同方式排序结果并没有成功。
riList
var就是这样的(来自Google Chrome开发工具):
keys: Array[194]
0: "Wire line diamond core drilling rig"
1: "VUA - isotope geochemistry laboratory"
2: "Volcanologic and Seismological Observatories"
3: "VESOG"
4: "Utrecht University - TecLab, Tectonic Laboratory"
5: "Utrecht University - Experimental and Analytical Laboratories"
.....
基本上与
相同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 developer tools输出
response
Object
offset: 194
rows: Array[0]
total_rows: 194
__proto__: Object
正如您在chrome devtools的输出中看到的那样,偏移量为194,因此我有一个包含0行的数组,因为它从最后一个键开始。
有什么想法吗?
答案 0 :(得分:2)
当我发现错误时,我很想删除这个问题。
但最后我决定放手并解释错误。
如果你觉得它应该被删除,请激励它,我会删除它。
所以我的问题的答案很简单:我检索的密钥不是我用"keys"
参数选择的密钥。
错误确实存在于我写的map
函数中:
//WRONG ONE!!
function(doc){
if(doc.doctype=='ri'){
emit(doc.ri, doc);
}
}
INSTEAD OF
//RIGHT ONE!!
function(doc){
if(doc.doctype=='ri'){
emit(doc.ri_name, doc);// RI_NAME INSTEAD OF RI!!!!!
}
}
所以教训是:
当你得到一个等于数组长度的偏移量时,检查结果是否真的是你想用地图函数获得的结果。