flumeview-level-aggregate

1.1.0 • Public • Published

flumeview-level-aggregate

Example

const pull = require('pull-stream') const Log = require('flumelog-offset') const Flume = require('flumedb')

const Aggregate = require('flumeview-level-aggregate')

let db = Flume(Log()) db.use('agg', Aggregate(1, fitsBucket, add, {timeout: 100}))

function bucketKey(n) { return (n / 10) << 0 }

function add(b, {n}) { b = b || { key: bucketKey(n), value: { l: [], sum: 0 } } b.value.sum += n b.value.l = b.value.l.concat([n]) return b }

function fitsBucket({key, value}, {n}) { return bucketKey(n) == key }

db.append([ {n:1}, {n:2}, {n:10}, ], (err, seq) => { pull( db.agg.read({ keys: true, values: true }), pull.collect( (err, items)=>{ // { key: 0, value: {sum: 3, l: [1, 2]} }, // { key: 1, value: {sum: 10, l: [10]} }, }) }) ) })

/flumeview-level-aggregate/

    Package Sidebar

    Install

    npm i flumeview-level-aggregate

    Weekly Downloads

    2

    Version

    1.1.0

    License

    ISC

    Unpacked Size

    17.7 kB

    Total Files

    10

    Last publish

    Collaborators

    • regular