我是 Couchbase 的新手,正在努力获得一个复合索引来做我想做的事情。用例是这样的:
- 我有一组“枚举”被存储为文档
- 每个都有一个“last_updated”字段 - 正如您可能已经猜到的那样 - 存储该字段的最后一次更新时间
- 我希望能够仅显示自某个给定日期以来已更新但仍按枚举名称对列表进行排序的那些枚举
我创建了一个像这样的 Couchbase 视图:
function (doc, meta) {
var time_array;
if (doc.doc_type === "enum") {
if (doc.last_updated) {
time_array = doc.last_updated.split(/[- :]/);
} else {
time_array = [0,0,0,0,0,0];
}
for(var i=0; i<time_array.length; i++) { time_array[i] = parseInt(time_array[i], 10); }
time_array.unshift(meta.id);
emit(time_array, null);
}
}
我有一条记录没有设置 last_updated 字段,因此它的时间字段都设置为零。我认为作为第一个测试,我可以过滤掉该结果,然后输入以下内容:
startkey = ["a",2012,0,0,0,0,0]
endkey = ["Z",2014,0,0,0,0,0]
虽然列表按“id”排序,但它没有过滤任何内容!谁能告诉我我做错了什么?是否有更好的复合视图来实现这些结果?