久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

    <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="qwawimqqmiuu" 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="qwawimqqmiuu" 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="qwawimqqmiuu" 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>
                            主站蜘蛛池模板: 美女毛片 | 成人国产a | 国产精品欧美一区二区三区不卡 | 亚洲看片网站 | 国产乱码精品一区二区三区中文 | 五月激情婷婷在线 | 亚洲伊人久久综合 | 成人自拍视频 | 北条麻妃av一区二区三区 | 在线亚洲人成电影网站色www | 国产精品免费一区二区三区 | 中文字幕日韩欧美一区二区三区 | 日本三级网站在线 | 午夜欧美 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 成人在线不卡 | 99久久99| 国产十日韩十欧美 | 色婷婷久久久久swag精品 | 亚洲一区综合 | 欧美久久久久 | 亚洲精品视频免费观看 | 国产精品1区2区3区 国产在线观看一区 | 久久免费视频观看 | 亚洲嫩草 | 无人区国产成人久久三区 | 久久国产一区 | 美国十次成人欧美色导视频 | 特黄特色大片免费视频观看 | 日本久久久久久 | 亚洲福利| 国产一区二区 | 欧美一区二区三区久久精品 | 精品网站999 | 欧美极品在线观看 | 在线亚洲一区 | 成人免费视频观看视频 | 91av视频在线观看 | 亚洲综合激情 | 久久视频精品 | 久久精品久久久久久 |