2017-07-19 46 views
0

使用Nano查询NodeJS中的Couch视图,以计算所有文档中标签的出现次数。如果我在视图上选择Fauxton的缩小,它会正确显示每个标签名称作为关键字和计数。但是,从我的Node应用程序中,我只获得'Null'作为密钥,并且总共有个标记。不在缩减功能中返回键

标签名称(而不是_id)存储在每个文档中。这是我的地图功能(使用_count减少功能):

function (doc, meta) { 
    if(doc.tags) { 
    for(var i in doc.tags) { 
     emit(doc.tags[i],1); 
    } 
    } 
} 

这是我的(纳米)代码节点:

app.get('/listtags', function(req, res) { 
    couch.view('objects', 'tags-count', {reduce: true}, function(err, body) { 
     console.log(body); 
    }); 
}); 

,并返回:

{ rows: [ { key: null, value: 8 } ] } 

编辑 添加示例文档:

标签:

{ 
"_id": "...", 
"_rev": "1-...", 
"type": "tag", 
"name": "petrol" 
} 

包含文档标签:

{ 
"_id": "...", 
"_rev": "3-...", 
"type": "car", 
"title": "Audi", 
"desc": "description here", 
"tags": [ 
    "petrol", 
    "aircon", 
    "leather seats" 
] 
} 
+1

你能不能给我们一个文件条目的例子吗? –

+0

添加示例文档 – user4893295

+0

尝试{reduce:true,group_level:true}。如果有效,我会将其作为回答 –

回答

0

这是因为你必须指定无论是group_level选项或group=true选项。

如:

app.get('/listtags', function(req, res) { 
    couch.view('objects', 'tags-count', {reduce: true, group: true}, function(err, body) { 
     console.log(body); 
    }); 
});