使用Couchbase View读取文档子集

时间:2016-03-01 08:24:09

标签: javascript mapreduce couchbase

我的群集中有大约25M文档。我需要一次读取1M文档而没有任何特定标准。我无法访问密钥。所以我需要创建一个视图,它将发出文件,直到我到达一个高达1M的计数器。

我编写了一个Map函数,其中我试图创建一个静态变量,但JS不支持静态变量。我不知道该怎么做这个操作。我写的map函数只是返回1000个文档而且充满了错误。有人可以帮我这个功能吗?

function (doc, meta) {
  value = foo();
  if(value < 1000)
  {
    emit(meta.id, null);
  }else{
    return;       
  }
}

function incrementor(){
  if(typeof incrementor.counter == 'undefined'){
       incrementor.counter = 0; 
  }

  return ++incrementor.counter;
}

1 个答案:

答案 0 :(得分:1)

使用分页阅读带有视图的文档子集可以使用分页来完成:http://blog.couchbase.com/pagination-couchbase 对存储在存储桶中的每个突变调用Map函数,因此像这样的计数器方法没有意义。如果要拆分索引,则需要根据文档的内容执行此操作。但你应该真的使用分页。顺便说一下,这也可以用N1Ql来实现。