Verwenden von Nano zum Abfragen einer Couch-Ansicht in NodeJS, um das Vorkommen von Tags in allen Dokumenten zu zählen. Wenn ich in Fauxton in der Ansicht reduzieren wähle, wird es korrekt mit jedem Tag-Namen als Schlüssel und der Anzahl angezeigt. Von meiner Knoten-App bekomme ich aber nur 'Null' als Schlüssel und insgesamt alle Tags.Schlüssel, die nicht in reduzierter Funktion zurückgegeben werden
Der Tag-Name (anstatt der _id) wird in jedem Dokument gespeichert. Dies ist meine Map-Funktion (mit der _count reduzieren Funktion):
function (doc, meta) {
if(doc.tags) {
for(var i in doc.tags) {
emit(doc.tags[i],1);
}
}
}
Das ist mein (Nano) Code in Knoten:
app.get('/listtags', function(req, res) {
couch.view('objects', 'tags-count', {reduce: true}, function(err, body) {
console.log(body);
});
});
Und es gibt:
{ rows: [ { key: null, value: 8 } ] }
EDIT Hinzufügen von Beispieldokumenten:
Tag:
{
"_id": "...",
"_rev": "1-...",
"type": "tag",
"name": "petrol"
}
Doc enthält tags:
{
"_id": "...",
"_rev": "3-...",
"type": "car",
"title": "Audi",
"desc": "description here",
"tags": [
"petrol",
"aircon",
"leather seats"
]
}
Können Sie uns ein Beispiel für die ein Dokument Eintrag geben? –
hinzugefügt Beispieldokument – user4893295
Versuchen Sie mit {reduce: true, group_level: true}. Wenn es funktioniert, werde ich dies als die Antwort posten –