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]]