调用couchdb中的另一个列表函数
calling another list function in couchdb
大家好,
我正在couchdb中的视图上工作。并且,在'extract'列表函数中,我试图使用那个视图(myView)过滤掉一些信息。从连接到couchdb的客户端,我想做一件主要的事情——显示"extract"列表函数的结果。但是,我想对从'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,是否有一种方法可以在其他列表函数中调用'extract'列表函数,如'sum', 'median', 'standard deviation'等?
我想这样做的原因:-
所有其他列表函数:'sum', 'standard deviation'等都期望'extract'函数的返回值作为输入。因此,只是在其他列表函数中复制提取函数的代码是我最不想做的事情。
是否有其他方法来解决这个问题:-
是的,有一个方法。我曾想过我会使用另一个视图函数而不是'myView'的所有这些功能,并编写相同的'map'函数在'myView',但是,所有这些视图将有单独的'reduce'函数计算'sum', '标准开发'等。但是,这些视图的计算导致了大量的资源使用,因为每次都要创建这些视图。
你们能提供一个比这更好的解决方案吗?
谢谢
我的第一个想法是用reduce函数再次实现视图来进行计算,但是你说这太资源密集了。我想知道视图使用的频率,如果在访问之间有一堆更改?
如果它们只是用来生成一些统计报告或其他东西,很少访问,当他们做的时候,有一堆的变化需要对视图索引,也许你可以看看运行一个脚本,定期检索视图,使视图保持最新,所以当他们被访问时,他们仍然响应相对较快。
这是我们在生产环境中对我们所有的视图所做的事情,它工作得很好,我想这取决于你的基础设施和你正在泵送的数据量。
其他要考虑的事情我不确定这样做是否有任何差异/好处,但也许内置的reduce函数可能比您自己创建的函数提供更好的性能
http://wiki.apache.org/couchdb/Built-In_Reduce_Functions- Javascript通过列表项的函数和css来更改背景颜色
- 从javascript调用服务器端的下拉列表onchange函数
- 如何创建背景图像列表'URL,并使用jQuery在单击函数时应用它们
- 创建自定义函数以在函数上运行完整的多选下拉列表
- 是否可以在javascript函数参数列表中调用多个函数
- 为数组Jquery/Javascript创建一个列表函数
- 如何使用 couchdb 列表函数从 couchdb 视图结果中获取特定字段
- 如何在 SharePoint 上向此淘汰 JavaScript 添加额外的列表函数
- 语法错误:缺少参数列表函数 () {.
- XPages中的列表函数
- “compilation_error”在我的 CouchDB 设计文档中的列表函数中
- 是否可以在coucdhb列表函数中包含外部javascript代码
- 如何在列表函数中修复此闭包
- 在jquery对象的集合上使用underscore.js列表函数
- 调用couchdb中的另一个列表函数
- 返回和保留选择的下拉列表函数
- 数据库中的列表函数得到一个表达式不会计算为函数错误
- 使用本地存储的可排序列表函数出错
- 如何在列表函数中导入Javascript库
- jQuery播放列表函数错误:函数未定义