【问题标题】:couchdb erlang reduce - aggregate objectcouchdb erlang reduce - 聚合对象
【发布时间】: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 个单独的视图来分别发出每个值)

非常感谢!

【问题讨论】:

    标签: object view erlang couchdb reduce


    【解决方案1】:

    你实际上不需要特殊的 reduce,在这种情况下你可以使用标准的 _sum,因为它不仅可以求和数字,还可以求和数字数组。

    只需为basePoints 发出[basePointsNum, 0],为bonusPoints 发出[0, bonusPointsNum]。或者,如果您在一个文档中同时包含这两个字段,您可能会发出 [basePointsNum, bonusPointsNum]

    使用内置_sum 减少后,您将收到一个包含两个数字的数组,每个数字是相应索引列的总和。此功能似乎没有文档记录,但适用于 CouchDB 和 PouchDB,而且速度非常快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多