Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
View 带复合键的Couchbase视图:如何设置正确的开始键/结束键范围?_View_Couchbase - Fatal编程技术网

View 带复合键的Couchbase视图:如何设置正确的开始键/结束键范围?

View 带复合键的Couchbase视图:如何设置正确的开始键/结束键范围?,view,couchbase,View,Couchbase,具有此文档结构: "document":{ "title":"Cheese ", "start_date": "2010-02-17T15:35:00", "source": "s_source1" } 我想创建一个视图,返回2个日期之间的所有文档ID,并针对某个源: function (doc, meta) { emit([doc.start_date,doc.source], null); } 我尝试使用此范围键获取源1在“2014-04-04”和

具有此文档结构:

"document":{
    "title":"Cheese ",
     "start_date": "2010-02-17T15:35:00",
     "source": "s_source1"
}
我想创建一个视图,返回2个日期之间的所有文档ID,并针对某个源:

function (doc, meta) {
      emit([doc.start_date,doc.source], null);
}
我尝试使用此范围键获取源1在“2014-04-04”和“2014-04-05”之间的所有文档:

但这对消息来源不起作用。它检索日期范围内的所有文档,但不检索所有源(s_source1、s_source2,…)

我想下划线是问题的根源(一些编码问题)


如何设置密钥范围以仅获取特定日期范围内唯一来源的文档?

如果反转复合密钥,则可以在Couchbase中执行从左到右的选择密钥排序

function (doc, meta) {
  if(meta.type == "json") {
    if(doc.start_date && doc.source) {
      emit([doc.source,dateToArray(doc.start_date)],null);    
    }
  } 
}
要选择源值为“s_source1”的所有文档(从2010年的某个日期到今天),您的密钥如下所示:

Start_Key: ["s_source1",[2010,2,18,15,35,0]]
End_key:   ["s_source1",[2014,2,18,15,35,0]]
Couchbase网站上的这个问题对复合键排序有一些奇妙的解释,我完全推荐阅读它:

此外,以下是官方文件中的信息部分:

Start_Key: ["s_source1",[2010,2,18,15,35,0]]
End_key:   ["s_source1",[2014,2,18,15,35,0]]