2012-11-29 59 views
2

我正在嘗試使用CouchDB,並且我對它很新穎。CouchDB將數據作爲XML返回

我有數據存儲,我想查詢它並返回XML格式的數據。

我可以寫視圖或顯示功能嗎?一個人在被子上寫什麼表演功能?

有沒有人有任何例子?

+0

被褥還沒有編寫顯示/列表功能,一個漂亮的界面?然而,你是在​​正確的軌道上,使用show/list函數是要走的路,我建議使用CouchApp或其他東西,這樣你就可以將代碼保存在文件中。 –

+0

謝謝Dominic使用CouchApp要簡單得多。只是想確保我不想陷入無限的工具中。 – TommyK

回答

1

如果你不想使用CouchApp,只是希望得到你的意見,XML,你可以用這一個襯墊(-ish)名單:

"xml": "function element(name, row){send('<' + name + '>\\n'); for(field in row) { if (typeof(row[field])=='object') {element(field, row[field])} else {send('<field name=\"' + field + '\">'); send((''+row[field]).replace(/&/g,'&amp;').replace(/</g,'&lt;')); send('</field>\\n');} } send('</' + name + '>\\n');};  function(head, req) { provides('xml', function() { send('<xml>\\n'); while (row=getRow()) { element('row', row) } send('</xml>'); }); }" 

,因爲我已經把它作爲一個線它必須作爲設計文件中的單行功能輸入。

創建一個設計文檔

如果您還沒有一個設計文件創建一個是建立在蒲團臨時視圖視圖最簡單的方法和您選擇的[另存爲...] design_document_name和您選擇的視圖名稱。我將在此使用設計文檔「select」和一個名爲「by_id」的視圖。我by_id看法是這樣的:

function(doc) { 
    emit(doc._id, null); 
} 

當這已經創造了選擇查看「設計文檔」從蒲團的下拉菜單中進入大名單納入設計文件

。點擊新(可能)創建的設計文檔_design/select。

選擇選項卡Source並雙擊Source。在「views」之前再次點擊:...並確保你的插入符號被放置在那裏。

使該行的上方插入新行,然後輸入:

"lists": { 
    | 
} 

在大括號(其中管道字符)的中間的一行從上面粘貼。保存文檔。

使用新的列表,並獲得XML

現在你可以從任何視圖作爲XML的任何數據。請注意,您只能使用視圖而不是直接使用整個數據庫內容,即使我的視圖正是如此。

要查看你的數據在瀏覽器中使用這個網址:

http://localhost:5984/content/_design/select/_list/xml/by_id?include_docs=true&limit=10 
  • 參數include_docs = true,則結果列表中的每個文件的一部分。這是一個標準的CouchDB功能。
  • 參數限制= 10將結果列表最多保留10個文檔,以限制您擁有大型數據庫所需的時間。
  • 如果在視圖中有縮小功能,也可以輸入參數reduce = false。

它是如何查看我的計算機

我有一個看起來像這樣,當我用直接查看數據庫:

URL =本地主機:5984 /漫畫/ _design /選擇/ _view/by_id?include_docs =真

{"total_rows":6,"offset":0,"rows":[ 
{"id":"Batman","key":"Batman","value":null,"doc":{"_id":"Batman","_rev":"1-0ec5a1032c2fa8486c921924e13a31cf","publisher":"DC Comics"}}, 
{"id":"Donald Duck","key":"Donald Duck","value":null,"doc":{"_id":"Donald Duck","_rev":"1-1c431dfb2c46991ec999743830a5363b","publisher":"Walt Disney"}}, 
{"id":"Iron Man","key":"Iron Man","value":null,"doc":{"_id":"Iron Man","_rev":"1-4f3a3d862b3601a74d6277f4be930e33","publisher":"Marvel Comics"}}, 
{"id":"Mickey Mouse","key":"Mickey Mouse","value":null,"doc":{"_id":"Mickey Mouse","_rev":"1-1c431dfb2c46991ec999743830a5363b","publisher":"Walt Disney"}}, 
{"id":"Spider-Man","key":"Spider-Man","value":null,"doc":{"_id":"Spider-Man","_rev":"1-4f3a3d862b3601a74d6277f4be930e33","publisher":"Marvel Comics"}}, 
{"id":"Superman","key":"Superman","value":null,"doc":{"_id":"Superman","_rev":"1-0ec5a1032c2fa8486c921924e13a31cf","publisher":"DC Comics"}} 
]} 

而在XML

URL =本地主機:5984 /漫畫/ _design /選擇/ _list/XML/by_id include_docs =真

<xml> 
    <row> 
     <field name="id">Batman</field> 
     <field name="key">Batman</field> 
     <value> 
     </value> 
     <doc> 
      <field name="_id">Batman</field> 
      <field name="_rev">1-0ec5a1032c2fa8486c921924e13a31cf</field> 
      <field name="publisher">DC Comics</field> 
     </doc> 
    </row> 
    <row> 
     <field name="id">Donald Duck</field> 
     <field name="key">Donald Duck</field> 
     <value> 
     </value> 
     <doc> 
      <field name="_id">Donald Duck</field> 
      <field name="_rev">1-1c431dfb2c46991ec999743830a5363b</field> 
      <field name="publisher">Walt Disney</field> 
     </doc> 
    </row> 
    <row> 
     <field name="id">Iron Man</field> 
     <field name="key">Iron Man</field> 
     <value> 
     </value> 
     <doc> 
      <field name="_id">Iron Man</field> 
      <field name="_rev">1-4f3a3d862b3601a74d6277f4be930e33</field> 
      <field name="publisher">Marvel Comics</field> 
     </doc> 
    </row> 
    <row> 
     <field name="id">Mickey Mouse</field> 
     <field name="key">Mickey Mouse</field> 
     <value> 
     </value> 
     <doc> 
      <field name="_id">Mickey Mouse</field> 
      <field name="_rev">1-1c431dfb2c46991ec999743830a5363b</field> 
      <field name="publisher">Walt Disney</field> 
     </doc> 
    </row> 
    <row> 
     <field name="id">Spider-Man</field> 
     <field name="key">Spider-Man</field> 
     <value> 
     </value> 
     <doc> 
      <field name="_id">Spider-Man</field> 
      <field name="_rev">1-4f3a3d862b3601a74d6277f4be930e33</field> 
      <field name="publisher">Marvel Comics</field> 
     </doc> 
    </row> 
    <row> 
     <field name="id">Superman</field> 
     <field name="key">Superman</field> 
     <value> 
     </value> 
     <doc> 
      <field name="_id">Superman</field> 
      <field name="_rev">1-0ec5a1032c2fa8486c921924e13a31cf</field> 
      <field name="publisher">DC Comics</field> 
     </doc> 
    </row> 
</xml>