【发布时间】:2015-05-22 15:30:21
【问题描述】:
我的 Couchbase 存储桶中有许多文档。其中一些文档用作原子操作的计数器,因此它们只存储一个数字。所有这些计数器文档在键中都有共同的前缀(例如,'SomePrefix_')。如何访问所有这些“前缀”文档?它们不会出现在视图中。
【问题讨论】:
我的 Couchbase 存储桶中有许多文档。其中一些文档用作原子操作的计数器,因此它们只存储一个数字。所有这些计数器文档在键中都有共同的前缀(例如,'SomePrefix_')。如何访问所有这些“前缀”文档?它们不会出现在视图中。
【问题讨论】:
默认情况下,计数器不会从查看结果中排除。可能您在映射器中无意中这样做了。例如,这里考虑了计数器的映射器。
function (doc, meta) {
if (meta.type == 'base64') {
emit(meta.id, {counter: decodeBase64(doc)});
} else {
emit(meta.id, doc);
}
}
我猜您正在尝试将 doc 用作 JSON 对象,这会导致映射器过滤掉计数器。
【讨论】:
decodeBase64 产生字符代码数组。例如,我们在 value 列中使用 [ 59 ] 而不是 9。
问题在于使用startsWith 函数。
使用indexOf(...) === 0 定义键是否以子字符串开头。
【讨论】: