couchdb erlang reduce - 聚合对象
Posted
技术标签:
【中文标题】couchdb erlang reduce - 聚合对象【英文标题】:couchdb erlang reduce - aggregate object 【发布时间】:2018-11-22 23:53:02 【问题描述】:假设我有一张发出以下对象的地图
"basePoints": 2000, "bonusPoints": 1000
"basePoints": 1000, "bonusPoints": 50
"basePoints": 10000, "bonusPoints": 5000
如何在 Erlang(不是 javascript)中编写一个 reduce 来返回这样的聚合对象:
"basePoints": 13000, "bonusPoints": 6050
(如果可以的话,我宁愿不必编写 2 个单独的视图来分别发出每个值)
非常感谢!
【问题讨论】:
【参考方案1】:你实际上不需要特殊的 reduce,在这种情况下你可以使用标准的 _sum
,因为它不仅可以求和数字,还可以求和数字数组。
只需为basePoints
发出[basePointsNum, 0]
,为bonusPoints
发出[0, bonusPointsNum]
。或者,如果您在一个文档中同时包含这两个字段,您可能会发出 [basePointsNum, bonusPointsNum]
。
使用内置_sum
减少后,您将收到一个包含两个数字的数组,每个数字是相应索引列的总和。此功能似乎没有文档记录,但适用于 CouchDB 和 PouchDB,而且速度非常快。
【讨论】:
以上是关于couchdb erlang reduce - 聚合对象的主要内容,如果未能解决你的问题,请参考以下文章