Опитвам се да накарам филтриран _changes-API поток на CouchDB 2.1.1 да работи, но срещам проблеми. Искам да получавам само документи чрез канала за промени, които съдържат полето „тип“ със стойност „статия“.
Според документацията нещо подобно трябва да работи:
function (doc, req) {
if (doc.type && doc.type == 'article') {
return true;
}
return false;
}
Създадох функцията по-горе в нов изглед, наречен type_article
в _дизайн документ, наречен filters
, използвайки Fauxton. Когато щракна върху изгледа, не виждам никакви резултати там.
Сега искам да извлека филтрирания канал за промени от DB, като използвам филтъра като GET-параметър: localhost:5984/my_database/_changes?filter=filters/type_article
Отговорът на CouchDB е {"error":"not_found","reason":"missing json key: filters"}
Имате ли идея как мога да накарам филтърната функция да работи?
PS: Опитах също да използвам функцията 'emit()' вместо връщане на true
и false
, това върна очакваните резултати, но при опит за заявка _changes
се появи същата грешка.