Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在couchdb中调用另一个列表函数_Javascript_Function_Couchdb_Couchdb Futon - Fatal编程技术网

Javascript 在couchdb中调用另一个列表函数

Javascript 在couchdb中调用另一个列表函数,javascript,function,couchdb,couchdb-futon,Javascript,Function,Couchdb,Couchdb Futon,大家好 我正在couchdb中开发一个视图。在“提取”列表函数中,我试图使用该视图(myView)过滤掉一些信息。从连接到couchdb的客户端,我想做一件主要的事情——显示“extract”列表函数的结果。但是,我还想对“extract”函数返回的结果执行其他多项操作。所有其他操作中的一个简单操作是“求和”。但是,“提取”列表函数的结果还有许多其他功能,如计算中值/标准偏差等 { "_id": "_design/myDesigndoc", "lists": { "ex

大家好

我正在couchdb中开发一个视图。在“提取”列表函数中,我试图使用该视图(myView)过滤掉一些信息。从连接到couchdb的客户端,我想做一件主要的事情——显示“extract”列表函数的结果。但是,我还想对“extract”函数返回的结果执行其他多项操作。所有其他操作中的一个简单操作是“求和”。但是,“提取”列表函数的结果还有许多其他功能,如计算中值/标准偏差等

{
   "_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”等。 但是,这些视图的计算会导致大量资源使用,因为每次都会创建这些视图

你们能提供比这更好的解决方案吗


谢谢

我的第一个想法是使用reduce函数再次实现视图来进行计算,但是您说这太耗费资源了。。我想知道视图的使用频率,以及访问之间是否有大量的更改

如果它们只是用于生成报告或其他内容的一些统计信息,并且很少被访问,那么当它们被访问时,它需要对视图索引进行大量更改,也许您可以考虑运行一个脚本,定期检索视图,使视图保持最新,以便在访问视图时,它们仍能相对地做出响应快点

这是我们在生产环境中使用所有视图所做的事情,它工作得非常好,我想这取决于您的基础架构和您正在传输的数据量

<> P>其他一些要考虑的问题,我不确定这样做是否有什么不同/好处,但是内置的还原函数可能比你自己创建的函数提供更好的性能。

在我看来,您应该将
extract
sum
的逻辑抽象为可以在_-list函数中包含via和call的函数。