直升机人,
我正在研究 couchdb 中的视图。而且,在“提取”列表功能中,我试图使用该视图(myView)过滤掉一些信息。从连接到 couchdb 的客户端,我想做一件大事 - 显示“提取”列表函数的结果。但是,我还想对“提取”函数返回的结果执行多项其他操作。所有其他操作中的一个简单操作是“求和”。但是,还有许多其他功能,例如计算“提取”列表函数的结果的中值/标准偏差等。
{
"_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,有没有办法在其他列表函数(如“sum”、“median”、“standard deviation”等)中调用“extract”列表函数?
我想这样做的原因:-
所有其他列表函数:“总和”、“标准差”等都期望“提取”函数的返回值作为输入。因此,在其他列表函数中复制提取函数的代码是我最不想做的事情。
有没有其他方法可以解决这个问题:-
是的,有办法。我原以为我会为所有这些功能使用除“myView”之外的另一个视图函数,并编写与“myView”中相同的“map”函数,但是,所有这些视图都将具有单独的“reduce”函数来计算“sum” , 'standard dev' 等。但是,这些视图的计算导致了大量的资源使用,因为每次都创建了许多视图。
你们能提供比这更好的解决方案吗?
谢谢