我有一个由 Robinhood 股票订单组成的 RethinkDB 表。相关字段是:
方
(买入
或卖出
)
state
(我只寻找已成交
订单)
价格
(订单的平均美元价格)
数量
(出售或购买的股票数量)
我只是想了解我的订单历史记录中每只股票的历史损益。
我有以下工作查询,它告诉我所有卖出订单的价格,按股票代码分组:
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
订单的总值(value)中减去每个股票代码的 BUY
订单的总值(value),使用一个 ReQL 查询?
感谢您的宝贵时间。
最佳答案
您可以尝试将买入订单的倒数添加到您的总和中:
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')
关于javascript - 如何对 RethinkDB 中的过滤组执行映射缩减?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41816206/