从沙发床视图获取柜台文件

伊利亚布雷耶夫

我们使用Couchbase的增量功能将一些计数器存储在具有恒定prefix的变量键上SomePrefix_我们定义了一个视图,该视图获取所有以键开头的文档SomePrefix_

function (doc, meta) {
  if (meta.id.indexOf("SomePrefix_") === 0) {
    emit(meta.id, doc);
  }
}

当我们查询视图,我们得到的值一样"Mg==""MQ=="等.NET SDK加载失败查看结果,并将其映射为整数。

任何解决方法?

稻田

首先,根据目标是什么,视图可能不是最佳方法。如果所有键都是已知的,那么使用CRUD操作而不是视图将更快。如果要求使用reduce来查找所有键的平均值或最大值,或者键不简单,则视图是正确的解决方法。

Couchbase Server计数器内部存储为二进制而不是JSON。结果,视图引擎将二进制文件转换为base64。当doc被解码(decodeBase64(doc))时,它将是ASCII码然后String.fromCharCode(decode[i])需要使用转换为字符串。需要依次对每个数字进行转换。

例如,如果计数器doc是Mg==,则在解码时将具有ASCII码50即十进制字符串2

这种观点应该可以解决问题。

function (doc, meta) {
  if (meta.id.indexOf("counter_") === 0) {
    var decode = decodeBase64(doc);
    var value = null;
    for (i = 0; i < decode.length; ++i) {
      if (value == null) {
        value = String.fromCharCode(decode[i]);
      } else {
        value += String.fromCharCode(decode[i]);
      }
    }
    emit(meta.id, parseInt(value));
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在沙发床视图中访问值?

来自分类Dev

沙发床的油门XDCR

来自分类Dev

沙发床的油门XDCR

来自分类Dev

包装沙发床访问功能

来自分类Dev

Sync_gateway沙发床requireRole

来自分类Dev

沙发床无法存储,因为太大

来自分类Dev

Sync_gateway沙发床requireRole

来自分类Dev

通过python批量插入沙发床

来自分类Dev

使用带有boolean参数的沙发床视图时出现问题

来自分类Dev

如何使用批量获取从沙发床获取有序结果

来自分类Dev

当密钥不满足沙发床视图中的确切值时,响应自定义错误

来自分类Dev

在沙发床中检测到锁释放?

来自分类Dev

建议在多租户应用中使用沙发床模型

来自分类Dev

匹配沙发床设计中的任何键

来自分类Dev

为Hyperledger Fabric沙发床启用SSL

来自分类Dev

是否可以从沙发床参考javascript库?

来自分类Dev

在沙发床中检测到锁释放?

来自分类Dev

为什么不能登录到沙发床?

来自分类Dev

如何通过给定的密钥来检索沙发床中的所有文档?

来自分类Dev

使用正则表达式形式的密钥删除沙发床存储桶中的条目

来自分类Dev

有关沙发床复制品细节的一些问题

来自分类Dev

我怎样才能分组并更改沙发床中值的内容?

来自分类Dev

有关沙发床复制品细节的一些问题

来自分类Dev

网上有免费的免费沙发床商店可供学习吗?

来自分类Dev

要在N1QL沙发床情况下使用内部元素总和

来自分类Dev

使用适用于Python SDK的Twisted API异步N1QL沙发床查询

来自分类Dev

我在学习沙发床,有人能解释一下bucket和vbucket到底是什么吗?

来自分类Dev

我在学习沙发床,有人能解释一下bucket和vbucket到底是什么吗?

来自分类Dev

存储基础沙发视图的最佳实践

Related 相关文章

热门标签

归档