mongo = require("./mongoHelp.js") approx = require("approximate-number") dAgg = [ { '$unwind': { 'path': '$votes', 'includeArrayIndex': 'string', 'preserveNullAndEmptyArrays': false } }, { '$match': { 'votes.vt': { '$lt': 0 } }, },{'$limit': 10000}, ] uAgg = [ { '$unwind': { 'path': '$votes', 'includeArrayIndex': 'string', 'preserveNullAndEmptyArrays': false } }, { '$match': { 'votes.vt': { '$gt': 0 } }, },{'$limit': 10000}, ] dClaimed = 0 dVt = 0 mongo.aggregate('avalon5', 'contents', dAgg).then(res => { res.forEach(element => { dClaimed = dClaimed+element.votes.claimable dVt = dVt+(element.votes.vt*-1) }) console.log("Down, ",dVt,dClaimed/100,(dClaimed/100)/dVt) console.log("Down aprox, ",approx(dVt),approx(dClaimed/100)) }) uClaimed = 0 uVt = 0 mongo.aggregate('avalon5', 'contents', uAgg).then(res => { res.forEach(element => { uClaimed = uClaimed+element.votes.claimable uVt = uVt+(element.votes.vt) }) console.log("Up, ",uVt,uClaimed/100,(uClaimed/100)/uVt) console.log("Up aprox, ",approx(uVt),approx(uClaimed/100)) })