Mapreduce 与返回一个复合字符串相比,多个send()命令

Mapreduce 与返回一个复合字符串相比,多个send()命令,mapreduce,nosql,couchdb,Mapreduce,Nosql,Couchdb,我正在处理沙发数据库列表视图。输出应该是一个json对象,其结构适合于客户端 我目前正在从发送到view函数的值的不同元素创建一个compund字符串。它的基本功能是向结果字符串中添加子字符串,该字符串在函数完成后返回。这就是目前的工作 但是列表视图也有send()函数,它向输出发送一个值,而不结束列表函数本身 我看到的是解决同一问题的两种方法,它们都可以给出完全相同的输出 累积所有预期输出,并在最后返回 在整个过程完成之前,使用send()并将每个子字符串发送到输出 我不知道沙发内部是如何处理

我正在处理沙发数据库列表视图。输出应该是一个json对象,其结构适合于客户端

我目前正在从发送到view函数的值的不同元素创建一个compund字符串。它的基本功能是向结果字符串中添加子字符串,该字符串在函数完成后返回。这就是目前的工作

但是列表视图也有send()函数,它向输出发送一个值,而不结束列表函数本身

我看到的是解决同一问题的两种方法,它们都可以给出完全相同的输出

  • 累积所有预期输出,并在最后返回
  • 在整个过程完成之前,使用send()并将每个子字符串发送到输出
  • 我不知道沙发内部是如何处理这两个问题的。有没有更有效的方法?在这种情况下出现这种情况的原因是什么?

    建议您使用以下代码模板

    function(head, req) {
      var row;
      start({
        "headers": {
          "Content-Type": "text/html"
         }
      });
      while(row = getRow()) {
        send(row.value);
      }
    }
    
    然而,这并不总是有意义的。例如,如果您计算MD5 sum,那么在计算完成后返回它会更舒服


    所以你每次都要做决定

    我知道,这条信息是我问这个问题的原因之一。官方维基有几个地方几乎毫无意义。至少你没有得到任何明确的解释。我读到你提到的那一页是一种可能的方法,而不是唯一的方法或首选的方法。这正是我写这篇文章时想到的方式。