因此,startkey_docid 似乎没有像我们期望的那样与 couchbase 一起工作。
我们确实定义了一个 startkey,它适用于日期,但是当与 startkey_docid 结合使用时,我们看不到预期的结果。使用 complexKey 是不可能的吗?
我们通过 REST 接口直接调用 Couchbase,我们使用的是 Java 客户端,但在这里直接调用是为了消除客户端中存在错误的可能性。
注意带有日期数组的复杂键:
startkey=[[2013,11,11,23,12,0],"EVERYONE"]&startkey_docid=41070cfc-a85c-424c-9b87-fce0616c77c1&skip=1&descending=true
看法:
function (doc, meta)
{
if(meta.type == "json" && doc.type == "POST" && doc.created != null)
{
emit([dateToArray(doc.created), doc.visibility], null);
}
}
注意结果中只跳过了 4 行是第一行。startkey_docid 实际上是中间结果,所以我们期望的是只有最后一个 doc。为什么?因为我们的理解是调用应该从该文档开始并跳过它以仅显示最后一行。是否有错误或我们缺少的东西?
{
total_rows: 4,
rows: [{
id: "6e57a775-1e96-4ac3-95c1-f2218355aa3d",
key: [ [2013, 11, 11, 20, 29, 19], "EVERYONE"],
value: null
}, {
id: "41070cfc-a85c-424c-9b87-fce0616c77c1",
key: [ [2013, 11, 11, 20, 28, 21], "EVERYONE"],
value: null
}, {
id: "a4a6cf44-8a82-494a-a2b9-f6a3ec629f17",
key: [ [2013, 11, 8, 1, 17, 46], "EVERYONE"],
value: null
}]
}