1
我有一個網站,我的文檔大小約爲1MB。爲了避免任何形式的概念連接,我將所有相關數據放在一個文檔中。在couchdb中僅獲取文檔的幾個屬性
現在我經常只需要獲取文檔的一個或兩個屬性。每個文件有超過10個屬性,其中許多屬性非常大。我無法繼續爲每個屬性組合編寫視圖。
我應該怎麼做?我看到的唯一方法是即時創建視圖,然後使用這些視圖。或者有沒有更好的方法?
我有一個網站,我的文檔大小約爲1MB。爲了避免任何形式的概念連接,我將所有相關數據放在一個文檔中。在couchdb中僅獲取文檔的幾個屬性
現在我經常只需要獲取文檔的一個或兩個屬性。每個文件有超過10個屬性,其中許多屬性非常大。我無法繼續爲每個屬性組合編寫視圖。
我應該怎麼做?我看到的唯一方法是即時創建視圖,然後使用這些視圖。或者有沒有更好的方法?
http://wiki.apache.org/couchdb/Document_Update_Handlers
雖然它似乎很奇怪調用更新功能,沙發允許你從文檔而不更新它返回信息。請參閱xml示例。
這裏可能是可以擴展的例子:
添加jsonpath您ddoc,(https://github.com/s3u/JSONPath)
function(doc, req) { var jsonpath = require('jsonpath'); var path = req.query.path; var target = jsonpath(doc, path); var json = JSON.stringify(target); var resp = { 'headers' : { 'Content-Type' : 'application/json' }, 'body' : json }; return [doc, resp]; }
以上仍然是成立的,但實際上我會建議使用一個顯示函數。它幾乎完全相同的代碼。更正確的方法。 – 2012-04-01 17:47:40
不要忘記列表函數:如果您只是_querying_一些預定義的屬性,但需要_retrieve_任意屬性組合,則返回JSON對象的列表函數僅包含由查詢參數指定的那些文檔部分你要。 – ebohlman 2012-05-04 23:55:57
我已經創建了一些庫來使這個更有趣。請參閱https://github.com/ryanramage/kanso-jsonselect – 2012-05-05 04:39:17