Я знаю, что это должно быть легко, но я просто не могу понять, как это сделать, несмотря на то, что он провел несколько часов, глядя на него сегодня. Насколько я могу судить, нет прямого примера или учебника онлайн.Создание представления CSV от CouchDB
У меня есть несколько «таблиц» документов в базе данных CouchDB, причем каждая «таблица» имеет другое значение в поле «схема» в документе. Все документы с той же схемой содержат одинаковый набор полей. Все, что я хочу сделать, это просмотр различных «таблиц» в формате CSV, и я не хочу указывать список имен полей в каждой схеме.
Выход CSV будет потребляться сценарием R, поэтому я не хочу, чтобы на выходе были какие-либо дополнительные заголовки, если я могу их избежать; просто список имен полей, разделенных запятыми, со значениями в формате CSV.
Например, две записи в формате "table1" может выглядеть следующим образом:
{
"schema": "table1",
"field1": 17,
"field2": "abc",
...
"fieldN": "abc",
"timestamp": "2012-03-30T18:00:00Z"
}
и
{
"schema": "table1",
"field1": 193,
"field2": "xyz",
...
"fieldN": "ijk",
"timestamp": "2012-03-30T19:01:00Z"
}
мой взгляд довольно прост:
"all": "function(doc) {
if (doc.schema == "table1") {
emit(doc.timestamp, doc)
}
}"
как я хочу для сортировки моих записей в заказе timestamp.
Предположительно функция списка будет что-то вроде:
"csv": "function(head, req) {
var row;
...
// Something here to iterate through the list of fieldnames and print them
// comma separated
for (row in getRow) {
// Something here to iterate through each row and print the field values
// comma separated
}
}"
, но я просто не могу получить мою голову вокруг всего остального.
Если я хочу, чтобы получить выход CSV похожий
"timestamp", "field1", "field2", ..., "fieldN"
"2012-03-30T18:00:00Z", 17, "abc", ..., "abc"
"2012-03-30T19:01:00Z", 193, "xyz", ..., "ijk"
что должно моя CouchDB функция список выглядит?
Заранее спасибо