Javascript 如何对数据库中的已筛选组执行映射缩减?
我有一张由Robinhood库存订单组成的表。相关字段包括:Javascript 如何对数据库中的已筛选组执行映射缩减?,javascript,sql,rethinkdb,reql,Javascript,Sql,Rethinkdb,Reql,我有一张由Robinhood库存订单组成的表。相关字段包括: 侧边(购买或出售) 状态(我只寻找已填写的订单) 价格(订单的平均美元价格) 数量(出售或购买的股份数量) 我只是想了解我的订单历史中每种股票的历史损益 我有以下工作查询,它告诉我所有销售订单的价格,按股票符号分组: r.db('robinhood').table('orders').filter({side: 'sell', state: 'filled'}) .map(function(order) { return {
侧边
(购买或出售)状态
(我只寻找已填写的
订单)价格
(订单的平均美元价格)数量
(出售或购买的股份数量)
我只是想了解我的订单历史中每种股票的历史损益
我有以下工作查询,它告诉我所有销售订单的价格,按股票符号分组:
r.db('robinhood').table('orders').filter({side: 'sell', state: 'filled'})
.map(function(order) {
return {
cost: (order('price').coerceTo('number')).mul(order('quantity').coerceTo('number')),
symbol: order('symbol')
}
}).group('symbol').sum('cost')
这将返回如下内容:
[{"group":"AA","reduction":491},{"group":"AAPL","reduction":10589},{"group":"ABEO","reduction":7596.16},...]
显然,我可以对BUY
端执行相同的查询,这将告诉我所有采购订单的总成本(理论上,我可以从之前的SELL
值中减去这个值)
简言之,如何使用一个需求查询,从每个股票符号的SELL
订单总值中减去每个股票符号的BUY
订单总值?
谢谢您的时间。您可以尝试将购买订单的反向价值添加到您的金额中:
r.db('robinhood').table('orders').filter({state: 'filled'})
.map(function(order) {
return {
cost: order('price').coerceTo('number')
.mul(order('quantity').coerceTo('number'))
.mul(r.branch(order('side').eq('sell'), 1, -1)),
symbol: order('symbol')
}
}).group('symbol').sum('cost')