使用 Nano 在 NodeJS 中查询 Couch 视图,以计算所有文档中标签的出现次数。如果我在视图上选择 Fauxton 中的 reduce,它会正确显示每个标签名称作为键和计数。但是,在我的 Node 应用程序中,我只是将“Null”作为键,以及所有标签。
标签名称(而不是 _id)存储在每个文档中。这是我的地图功能(使用 _count 减少功能):
function (doc, meta) {
if(doc.tags) {
for(var i in doc.tags) {
emit(doc.tags[i],1);
}
}
}
这是我在 Node 中的(Nano)代码:
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"
]
}