2017-07-19 80 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); 
    }); 
});