Skip to content

Latest commit

 

History

History
61 lines (48 loc) · 2 KB

aggregate_collection.md

File metadata and controls

61 lines (48 loc) · 2 KB

Aggregate Collection

{% hint style="warning" %} Collections is an analytics API (not real-time, though it may look like one).

Not all filters and sortings are working now. Data is provided only for the past 7 days. {% endhint %}

When you may need aggregate of collections?

If you want to apply some aggregators like COUNT, MAX, MIN, SUM, AVERAGE on some blockchain data.

Usage

const aggregationFunctionsResults = result = 
        (await client.net.aggregate_collection({
        collection: 'accounts',
        fields: [
            {
                field: "balance",
                fn: "MIN"
            },
            {
                field: "balance",
                fn: "MAX"
            }, {
                field: "balance",
                fn: "AVERAGE"
            }, {
                field: "balance",
                fn: "SUM"
            },
            {
                field: "balance",
                fn: "COUNT"
            }
        ]
    })).values;
console.log("Minimum account balance: " + aggregationFunctionsResults[0]);
console.log("Maximum account balance: " + aggregationFunctionsResults[1]);
console.log("Average balance: " + aggregationFunctionsResults[2]);
console.log("Total balance of all accounts: " + aggregationFunctionsResults[3]);
console.log("Number of accounts: " + aggregationFunctionsResults[4] + '\n');

About collections

There are a few collections with blockchain data:

  • accounts: blockchain account data;
  • transactions: transactions related to accounts;
  • messages: input and output messages related to transactions;
  • blocks: blockchain blocks.
  • block_signatures : validator block signatures

Reference

Sample: https://github.com/everx-labs/sdk-samples/tree/master/core-examples/node-js/query