Helo Folks,appelant une autre fonction de liste dans couchdb
Je travaille sur une vue dans couchdb. Et, dans la fonction de liste 'extract', j'essaie de filtrer certaines informations en utilisant cette vue (myView). Du client qui se connecte à couchdb, je veux faire 1 chose importante - montrer les résultats de la fonction de liste 'extrait'. Mais, il y a plusieurs autres choses que je veux effectuer sur les résultats renvoyés par la fonction 'extract'. Une opération simple parmi toutes les autres opérations est 'sum'. Mais, il y a beaucoup d'autres caractéristiques comme le calcul de la médiane/écart-type etc. sur les résultats de la fonction de liste 'extrait'.
{
"_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" : "..." },
}
}
Alors, je suis coincé à un moment donné: -
Comme toute la conception doc est un JSON et les corps de fonction sont javascript, est-il un moyen d'appeler la liste « extrait » fonction dans d'autres fonctions de liste comme «somme», «médiane», «écart-type», etc?
Raison pour laquelle je veux faire: -
Toutes les autres fonctions de la liste: « somme », etc « écart-type » attendre la valeur de retour de la fonction « extrait » en entrée. Donc, juste faire des copies redondantes de la fonction de code de l'extrait dans d'autres fonctions de liste est la dernière chose que je voudrais faire.
est-il un autre moyen de résoudre ce: -
Oui, il y a un moyen. J'avais pensé que j'utiliserais une autre fonction de visualisation que 'myView' pour toutes ces fonctionnalités et j'écrirais la même fonction 'map' que dans 'myView' mais, toutes ces vues auront des fonctions 'reduce' séparées pour calculer 'sum' , 'standard dev' etc Mais, le calcul de ces vues a causé beaucoup d'utilisation des ressources car ces nombreuses vues étaient créées à chaque fois.
Pourriez-vous fournir une meilleure solution que celle-ci?
Merci
Il me semble comme vous devriez résumer la logique de 'extract' et' sum' en fonctions que vous pouvez inclure via [CommonJS] (http: //wiki.apache.org/couchdb/CommonJS_Modules) et appelez votre fonction _list. –