pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

    <bdo id='XMKN1'></bdo><ul id='XMKN1'></ul>

<tfoot id='XMKN1'></tfoot>
  • <legend id='XMKN1'><style id='XMKN1'><dir id='XMKN1'><q id='XMKN1'></q></dir></style></legend>

      <small id='XMKN1'></small><noframes id='XMKN1'>

      1. <i id='XMKN1'><tr id='XMKN1'><dt id='XMKN1'><q id='XMKN1'><span id='XMKN1'><b id='XMKN1'><form id='XMKN1'><ins id='XMKN1'></ins><ul id='XMKN1'></ul><sub id='XMKN1'></sub></form><legend id='XMKN1'></legend><bdo id='XMKN1'><pre id='XMKN1'><center id='XMKN1'></center></pre></bdo></b><th id='XMKN1'></th></span></q></dt></tr></i><div class="00youao" id='XMKN1'><tfoot id='XMKN1'></tfoot><dl id='XMKN1'><fieldset id='XMKN1'></fieldset></dl></div>
      2. 如何在 PouchDB 上模擬聚合函數 avg、sum、max、min

        How to simulating the aggregate functions avg, sum, max, min, and count on PouchDB?(如何在 PouchDB 上模擬聚合函數 avg、sum、max、min 和 count?)
                <tbody id='g8VPG'></tbody>
                <bdo id='g8VPG'></bdo><ul id='g8VPG'></ul>

                <tfoot id='g8VPG'></tfoot>
                  <legend id='g8VPG'><style id='g8VPG'><dir id='g8VPG'><q id='g8VPG'></q></dir></style></legend>
                  <i id='g8VPG'><tr id='g8VPG'><dt id='g8VPG'><q id='g8VPG'><span id='g8VPG'><b id='g8VPG'><form id='g8VPG'><ins id='g8VPG'></ins><ul id='g8VPG'></ul><sub id='g8VPG'></sub></form><legend id='g8VPG'></legend><bdo id='g8VPG'><pre id='g8VPG'><center id='g8VPG'></center></pre></bdo></b><th id='g8VPG'></th></span></q></dt></tr></i><div class="kimgeyc" id='g8VPG'><tfoot id='g8VPG'></tfoot><dl id='g8VPG'><fieldset id='g8VPG'></fieldset></dl></div>

                • <small id='g8VPG'></small><noframes id='g8VPG'>

                  本文介紹了如何在 PouchDB 上模擬聚合函數 avg、sum、max、min 和 count?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  有誰知道如何在 PouchDB 數據庫上創建聚合函數,例如 avg、sum、max 和 min.我創建了一個簡單的應用程序來測試 PouchDB.我仍然不知道如何運行這些命令.提前致謝.

                  Does anyone know how to create aggregate functions, for example avg, sum, max and min on PouchDB database. I created a simple application to test the PouchDB. I'm still not figured out how to run these commands. Thanks in advance.

                  例如.您如何獲得數字"字段的最高、最低或平均值?

                  For example. How do you get the highest, lowest or average for the "number" field?

                  我的主要 Ionic 2 組件

                  My main Ionic 2 component

                  import {Component} from '@angular/core';
                  import {Platform, ionicBootstrap} from 'ionic-angular';
                  import {StatusBar} from 'ionic-native';
                  import {HomePage} from './pages/home/home';
                  declare var require: any;
                  var pouch = require('pouchdb');
                  var pouchFind = require('pouchdb-find');
                  @Component({
                      template: '<ion-nav [root]="rootPage"></ion-nav>'
                  })
                  export class MyApp {
                      rootPage: any = HomePage;
                      db: any;
                      value: any;
                      constructor(platform: Platform) {
                          platform.ready().then(() => {
                              StatusBar.styleDefault();
                          });
                          pouch.plugin(pouchFind);
                          this.db = new pouch('friendsdb');
                          let docs = [
                              {
                                  '_id': '1',
                                  'number': 10,
                                  'values': '1, 2, 3',
                                  'loto': 'fooloto'
                              },
                              {
                                  '_id': '2',
                                  'number': 12,
                                  'values': '4, 7, 9',
                                  'loto': 'barloto'
                              },
                              {
                                  '_id': '3',
                                  'number': 13,
                                  'values': '9, 4, 5',
                                  'loto': 'fooloto'
                              }
                          ];
                          this.db.bulkDocs(docs).then(function (result) {
                              console.log(result);
                          }).catch(function (err) {
                              console.log(err);
                          });
                      }
                  }
                  ionicBootstrap(MyApp);
                  

                  推薦答案

                  您可以使用 map/reduce 函數 來自 PouchDB 的 db.query() 方法 以獲得平均值、總和、最大或任何其他類型的聚合文檔.

                  You can use the map/reduce functions of the db.query() method from PouchDB to get the average, sum, largest or any other kind of aggregation of the docs.

                  我創建了一個 演示 JSBin fiddle 和一個正在運行的示例.我將函數的解釋直接添加到代碼中(如下)作為注釋,因為我認為它會更簡單.

                  I have created a demo JSBin fiddle with a running example. I added the explanation of the functions directly into the code (below) as comments, as I thought it'd be simpler.

                  var db = new PouchDB('friendsdb');
                  var docs = [
                        {'_id': '1', 'number': 10, 'values': '1, 2, 3', 'loto': 'fooloto'},
                        {'_id': '2', 'number': 12, 'values': '4, 7, 9', 'loto': 'barloto'},
                        {'_id': '3', 'number': 13, 'values': '9, 4, 5', 'loto': 'fooloto'}
                  ];
                  
                  db.bulkDocs(docs).then(function(result) {
                    querySum();
                    queryLargest();
                    querySmallest();
                    queryAverage();
                  }).catch(function(err) {
                    console.log(err);
                  });
                  
                  function querySum() {
                    function map(doc) {
                      // the function emit(key, value) takes two arguments
                      // the key (first) arguments will be sent as an array to the reduce() function as KEYS
                      // the value (second) arguments will be sent as an array to the reduce() function as VALUES
                      emit(doc._id, doc.number);
                    }
                    function reduce(keys, values, rereduce) {
                      // keys:
                      //   here the keys arg will be an array containing everything that was emitted as key in the map function...
                      //   ...plus the ID of each doc (that is included automatically by PouchDB/CouchDB).
                      //   So each element of the keys array will be an array of [keySentToTheEmitFunction, _idOfTheDoc]
                      //
                      // values
                      //   will be an array of the values emitted as value
                      console.info('keys ', JSON.stringify(keys));
                      console.info('values ', JSON.stringify(values));
                      // check for more info: http://couchdb.readthedocs.io/en/latest/couchapp/views/intro.html
                  
                  
                      // So, since we want the sum, we can just sum all items of the values array
                      // (there are several ways to sum an array, I'm just using vanilla for to keep it simple)
                      var i = 0, totalSum = 0;
                      for(; i < values.length; i++){
                          totalSum += values[i];
                      }
                      return totalSum;
                    }
                    db.query({map: map, reduce: reduce}, function(err, response) {
                      console.log('sum is ' + response.rows[0].value);
                    });
                  }
                  
                  function queryLargest() {
                    function map(doc) {
                      emit(doc._id, doc.number);
                    }
                    function reduce(keys, values, rereduce) {
                      // everything same as before (see querySum() above)
                      // so, this time we want the larger element of the values array
                  
                      // http://stackoverflow.com/a/1379560/1850609
                      return Math.max.apply(Math, values);
                    }
                    db.query({map: map, reduce: reduce}, function(err, response) {
                      console.log('largest is ' + response.rows[0].value);
                    });
                  }
                  
                  function querySmallest() {
                    function map(doc) {
                      emit(doc._id, doc.number);
                    }
                    function reduce(keys, values, rereduce) {
                      // all the same... now the looking for the min
                      return Math.min.apply(Math, values);
                    }
                    db.query({map: map, reduce: reduce}, function(err, response) {
                      console.log('smallest is ' + response.rows[0].value);
                    });
                  }
                  
                  function queryAverage() {
                    function map(doc) {
                      emit(doc._id, doc.number);
                    }
                    function reduce(keys, values, rereduce) {
                      // now simply calculating the average
                      var i = 0, totalSum = 0;
                      for(; i < values.length; i++){
                          totalSum += values[i];
                      }
                      return totalSum/values.length;
                    }
                    db.query({map: map, reduce: reduce}, function(err, response) {
                      console.log('average is ' + response.rows[0].value);
                    });
                  }
                  

                  注意:這只是一種方法.還有其他幾種可能性(不將 ID 作為鍵發出,使用組和不同的 reduce 函數,使用內置的 reduce 函數,例如 _sum,...),我只是認為一般來說這是更簡單的選擇.

                  Note: This is just one way to do it. There are several other possibilities (not emitting IDs as keys, using groups and different reduce functions, using built-in reduce functions, such as _sum, ...), I just thought this was the simpler alternative generally speaking.

                  這篇關于如何在 PouchDB 上模擬聚合函數 avg、sum、max、min 和 count?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Check if a polygon point is inside another in leaflet(檢查一個多邊形點是否在傳單中的另一個內部)
                  Changing leaflet markercluster icon color, inheriting the rest of the default CSS properties(更改傳單標記群集圖標顏色,繼承其余默認 CSS 屬性)
                  Trigger click on leaflet marker(觸發點擊傳單標記)
                  How can I change the default loading tile color in LeafletJS?(如何更改 LeafletJS 中的默認加載磁貼顏色?)
                  Adding Leaflet layer control to sidebar(將 Leaflet 圖層控件添加到側邊欄)
                  Leaflet - get latitude and longitude of a marker inside a pop-up(Leaflet - 在彈出窗口中獲取標記的緯度和經度)

                  <small id='FG1iH'></small><noframes id='FG1iH'>

                  1. <i id='FG1iH'><tr id='FG1iH'><dt id='FG1iH'><q id='FG1iH'><span id='FG1iH'><b id='FG1iH'><form id='FG1iH'><ins id='FG1iH'></ins><ul id='FG1iH'></ul><sub id='FG1iH'></sub></form><legend id='FG1iH'></legend><bdo id='FG1iH'><pre id='FG1iH'><center id='FG1iH'></center></pre></bdo></b><th id='FG1iH'></th></span></q></dt></tr></i><div class="sy2aqww" id='FG1iH'><tfoot id='FG1iH'></tfoot><dl id='FG1iH'><fieldset id='FG1iH'></fieldset></dl></div>

                      <bdo id='FG1iH'></bdo><ul id='FG1iH'></ul>
                      <tfoot id='FG1iH'></tfoot>
                        <tbody id='FG1iH'></tbody>

                        <legend id='FG1iH'><style id='FG1iH'><dir id='FG1iH'><q id='FG1iH'></q></dir></style></legend>
                            主站蜘蛛池模板: 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 中药超微粉碎机(中药细胞级微粉碎)-百科 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 移动厕所租赁|移动卫生间|上海移动厕所租赁-家瑞租赁 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | 艺术漆十大品牌_艺术涂料加盟代理_蒙太奇艺术涂料厂家品牌|艺术漆|微水泥|硅藻泥|乳胶漆 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 校车_校车价格_19座幼儿园校车_幼儿园校车_大鼻子校车 | 碳刷_刷握_集电环_恒压簧_电刷厂家-上海丹臻机电科技有限公司 | 二手Sciex液质联用仪-岛津气质联用仪-二手安捷伦气质联用仪-上海隐智科学仪器有限公司 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 活性炭-果壳木质煤质柱状粉状蜂窝活性炭厂家价格多少钱 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | 北京公积金代办/租房发票/租房备案-北京金鼎源公积金提取服务中心 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 转向助力泵/水泵/发电机皮带轮生产厂家-锦州华一精工有限公司 | 挤奶设备过滤纸,牛奶过滤纸,挤奶机过滤袋-济南蓝贝尔工贸有限公司 | 商标转让-商标注册-商标查询-软著专利服务平台 - 赣江万网 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 撕碎机_轮胎破碎机_粉碎机_回收生产线厂家_东莞华达机械有限公司 | 亮点云建站-网站建设制作平台| 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 喷漆房_废气处理设备-湖北天地鑫环保设备有限公司 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 爱德华真空泵油/罗茨泵维修,爱发科-比其尔产品供应东莞/杭州/上海等全国各地 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 | 数年网路-免费在线工具您的在线工具箱-shuyear.com |