Helo Folks,在couchdb中調用另一個列表函數
我正在研究couchdb中的視圖。並且,在「提取」列表功能中,我試圖使用該視圖(myView)過濾出一些信息。從連接到couchdb的客戶端,我想要做1件大事 - 顯示「提取」列表功能的結果。但是,我還想對'extract'函數返回的結果執行其他多種操作。所有其他操作中的一個簡單操作是'sum'。但是,還有很多其他功能,比如計算「提取」列表函數結果的中位數/標準差等。
{
"_id": "_design/myDesigndoc",
"lists": {
"extract": "function(head, req){ ...*extract some info the view*: **myView** ...}",
"sum" : "function(head,req) {...**sum up all the values returned from the 'extract' function above**...}"
},
"views": {
"myView" : { "map" : "..." },
}
}
所以,我被堵在一個點: -
由於整個設計文檔是一個JSON和函數體是JavaScript的,是有辦法叫「提取物」名單函數在其他列表功能,如「總和」,「中位數」,「標準偏差」等?
原因我想這樣做: -
所有其他列表功能:「總和」,「標準差」等期望的那樣輸入「提取」函數的返回值。所以,在其他列表函數中創建提取函數代碼的冗餘副本是我想要做的最後一件事。
是否有解決這個的另一種方法: -
是的,有一種方法。我曾經想過,我將爲所有這些功能使用另一個視圖功能而不是'myView',並編寫與'myView'中相同的'map'功能,但所有這些視圖都會有單獨的'reduce'功能來計算'sum' ,'standard dev'等。 但是,這些視圖的計算會導致大量資源使用,因爲每次都會創建許多視圖。
你們能否提供比這更好的解決方案?
感謝
這聽起來我像您應該抽象'extract'和'sum'入功能的邏輯可以通過[CommonJS的](HTTP包括://wiki.apache。org/couchdb/CommonJS_Modules)並調用你的_list函數。 –