0

こんにちは。

私はcouchdbのビューに取り組んでいます。そして、「抽出」リスト機能では、そのビュー (myView) を使用して一部の情報を除外しようとしています。couchdb に接続するクライアントから、1 つの大きなことを実行したいと思います - 「抽出」リスト関数からの結果を表示します。しかし、「抽出」関数から返された結果に対して実行したいことが他にもいくつかあります。他のすべての操作の 1 つの単純な操作は「合計」です。ただし、「抽出」リスト関数の結果に対して中央値/標準偏差などを計算するなど、他にも多くの機能があります。

{
   "_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」関数があります。 、「標準開発」など。ただし、これらのビューの計算では、毎回多くのビューが作成されるため、多くのリソースが使用されていました。

これよりも優れたソリューションを提供できますか?

ありがとう

4

1 に答える 1