view - 如何获得所有 CouchDB 值的总和?

标签 view couchdb couchapp couchbase

如何根据 ID 或其他内容提取 SUM,以获取所有值的 SUM?

我能够获取所有值,但无法求和,因为它是单个变量,因此必须有某种分段来对它们求和?有什么想法吗?

$db = $.couch.db("fuel");  

function refreshFuel() {  

$("div#fuel").empty();  

$db.view("fuel/bill", {success: function(data) {  

    for (i in data.rows) {  
    id = data.rows[i].id;  
    bill = data.rows[i].key;  
    date = data.rows[i].value;  

    html = '<div class="fuel">' +  
   '<span class="bill">' + bill + '</span> ' +  
   '<span class="date">' + date + '</span> ' +    
   '</div>';  

  $("div#fuel").append(html);  
 }  
 }});  
}  

function getAll(){

$("div#all").empty();  

$db.view("fuel/bill", {success: function(data) {  

    for (i in data.rows) {  
    id = data.rows[i].id;  
    bill = data.rows[i].key;  // how to get SUM of all this values
    date = data.rows[i].value;  

    html = 
   '<span class="all">' + bill + '</span> '     


  $("div#all").append(html);  
 }  
}});

}

编辑:

我的 JSON 看起来像这样:

    {
   "_id": "1a06982d3434f37a04a02dbf360010ee",
   "_rev": "1-c8c9d5252a76abd8f565ff82bf63b0e8",
   "value": "200",
   "date": "2011-09-05T10:28:55.101Z"
}

我的 View 如下所示:

function(doc) {
    if (doc.value, doc.date) {
        emit(doc.value,doc.date, doc);
    }    
}

最佳答案

你只需要添加一个reduce函数,例如,

function(keys, values, rereduce) {
  return sum(values);
}

这种情况很常见,因此我们有一个更快的内置函数;

_sum

您需要发出您想要求和的值,例如;

function(doc) {
  emit(doc.date, doc.value);
}

关于view - 如何获得所有 CouchDB 值的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7306981/

相关文章:

pdf - 同一个 PDF 文档的打印方式与在屏幕上查看的方式是否不同?

java - 触摸位置周围的半径

java - 缓存认证数据

elasticsearch - 当CouchDB 2.0具有/db/_find时,为什么将Elasticsearch与CouchDB一起使用?

javascript - 使用 commonjs 模式跨 couchdb View 重用函数

ios - 使自定义 View Controller 覆盖导航栏

android - 如何在此动画后休息/初始状态 View ?

configuration - 如何找到CouchDB的local.ini文件,以便自定义其设置?

couchdb - 如何使用 Futon 并将 couchapp 推送到使用虚拟主机的 CouchDB?

couchdb - 显示和列表功能的区别