Как перебрать хранилище и подсчитать данные полей на сенче

У меня есть магазин в сенче со следующим кодом

Ext.define('Qvidi.store.MyJsonStore', {
extend: 'Ext.data.Store',

requires: [
    'Qvidi.model.Qvidi',
    'Ext.data.proxy.Ajax',
    'Ext.data.reader.Json'
],

constructor: function(cfg) {
    var me = this;
    cfg = cfg || {};
    me.callParent([Ext.apply({
        storeId: 'MyJsonStore',
        model: 'Qvidi.model.Qvidi',
        proxy: {
            type: 'ajax',
            extraParams: {
                class: 'Qvidi',
                method: 'getData'
            },
            url: 'server/index.php',
            reader: {
                type: 'json',
                rootProperty: 'results'
            }
        }
    }, cfg)]);
  }
});

Мне нужно перебрать хранилище и подсчитать поле под названием «пол», поступающее из базы данных mysql, база данных загружена и извлекает данные, однако мне нужно выполнить итерацию по данным, чтобы подсчитать, сколько мужчин и женщин находится в базе данных. Таким образом, мужчины определяются как один в базе данных, а женщины определяются как 2. Все эти данные загружаются в хранилище.

Мне просто нужно знать, как отличить самца от самки. Я знаю, что вы должны использовать функцию foreach в сенче.

Любая помощь приветствуется


person Andrew Barker    schedule 25.02.2016    source источник


Ответы (2)


Написать хранилище кода после загрузки

yourStore.queryBy(function(record,id){ return (record.get('Your Field name') === "male/female"); }).getCount(); // For male/female
person Rahul Bhawar    schedule 25.02.2016

Для этого вы можете воспользоваться функцией filter() и getCount() магазина:

var store = Ext.getStore('MyJsonStore');
store.filter('gender',1);       //filtering all male records
var maleCount = store.getCount();    //getting the count
store.clearFilter();
store.filter('gender',2);           //filtering all female records
var femaleCount=store.getCount();
store.clearFilter();
person Ankit Chaudhary    schedule 25.02.2016
comment
Я попробовал это, но на полпути я нашел другой способ, я решил написать очень специфический SQL-запрос, который формировал данные так, как мне было нужно. - person Andrew Barker; 09.03.2016
comment
Так что мне не нужно фильтровать через магазин - person Andrew Barker; 09.03.2016
comment
Спасибо за помощь - person Andrew Barker; 09.03.2016