2017-07-10 2 views
0

CouchDB 1.6.1でリスト関数を使用してcsvファイルに特定のフィールドを出力するための原則/構文をマスターしようとしています。CouchDB(1.6.1)リスト関数を使用してCSVファイルに出力する

私は単純な出力をhtmlに設定しました。これはやりやすいように見え、うまくいきます。

私がやりたいことは、データベースから選択したフィールドを出力し、そのデータをcsvファイルに出力するために、リスト関数が必要とするビューを持つことです。

私ができないように見えるのは、リスト出力を表示出力から特定のフィールドに読み込むことです。これは、html出力を取得する際に成功しました。

ビュー機能は、次のようなものになります。同じビュー用のCSV出力のための同様のリスト機能がどのように見えるはずです

"function(head, req){ 
start({'headers': { 
'Content-Type': 'text/html' }}); 
send('<html><body><table>'); 
send('<tr><th>A</th><th>B</th><th>C</th></tr>'); 
while(row=getRow()){ 
send(''.concat('<tr>', '<td>' + toJSON(row.key.A) + '</td>','<td>' + toJSON(row.key.B) + '</td>','<td>' + toJSON(row.key.C) + '</td>', '</tr>'));} 
send('</table></body></html>');}" 

function(doc){ 
emit({'A':doc.a, 'B':doc.b, 'C':doc.c.d .....}, null);} 

をHTMLリスト機能は、次のようになります:

"function(head, req){ 
start({'headers': { 'Content-Type': 'text/csv' }}); 
send('A' +','+ 'B' +','+'C' + '\\n'); 
while(row=getRow()){ 
send(''.concat(toJSON(row.key.A) , toJSON(row.key.B) , toJSON(row.key.C)));};}" 

この結果、 ""error":"compilation_error","reason":"Expression does not eval to a function ...."

誤ってフォーマットされたテキストの混乱を除いて、成功なしにcsv関数のさまざまなバリエーションを試しました。私は、この構造が全く動作させることはできません

function (head, req) { 
start({ 

    “headers”: { 

     “Content-Type”: “text/csv” 

    } 

    }); 

send(‘Username, Name, Email\n’); 

while(row = getRow()) { 

    send(row.value.username+’,’+row.value.email+’,’+row.value.metadata.name+’\n’); 

    } 

} 

Aが与えられたとして、特定のウェブサイト上で、CSVリスト機能のためのポイントを開始してお勧めします。

正しい構文で入力していただければ幸いです。

答えて

0

私はガイドラインhereを見つけることができました。 Oliver Kurowskiのスライドショー。

基本原則は以下のとおりです。

"views": { 
"byPrice": { 
"map": "function(doc){emit(doc.price, [doc.make,doc.year]);};" 
} 
} 
"lists": { 
"csv": "function(head,req){start({'headers':{'Content-Type':'text/csv'}});send('Make'+','+'Year'+','+'Price'+'\\n');while(row=getRow()){send(row.value+','+row.key+'\\n');}};" 
} 

それがうまく働きました。

ありがとう、オリバー。

関連する問題