【问题标题】:Parse.com cloud code to total after saveall全部保存后 Parse.com 云代码总计
【发布时间】:2014-11-17 21:48:20
【问题描述】:

我有一个 Parse.com 类,名为 Node,其中包含一个名为 cost 的数字列。

我的客户端应用程序允许一次创建多个节点,这些节点使用 SaveAll 调用保存到 Parse。

然后我有另一个类NodeTotals,它将包含根据特定标准分组的所有cost 的总数。

我正在尝试实现一种高效方法来在云代码中进行总计。我最初的方法是有一个AfterSave 函数(在Node 上):

  • 查询所有现有的Node 符合我的条件的行
  • 对返回的结果求和cost
  • 查询是否存在 NodeTotal 条目,如果存在则更新总数,如果不存在则创建新条目

但我担心这种方法不是最优的 - 至少有以下两个原因:

  1. 对每个 Node 执行所有这些查询保存不能很好
  2. 如果客户端创建了一堆新的Node 对象,然后执行 SaveAll,我的 AfterSave 函数的多个实例将被并行调用 - 每个人都认为没有现有的 NodeTotal 条目,因此创建一个新的(上面的第三点) - 导致创建多个 NodeTotal 行,而实际上应该只有一个

我很确定一定有更好的方法来做我想做的事情 - 只需要一些明亮的火花来指出它!

【问题讨论】:

    标签: javascript algorithm parse-platform parse-cloud-code


    【解决方案1】:

    对于遇到此问题的任何人,我最终都做了以下事情:

    为了解决问题 1) 我确保 Node Total 是在创建 Node 的时间点创建的 - 从而无需在每次更新时查询是否存在

    对于问题 2) 使用 Parse Object.Increment 函数来确保原子操作

    【讨论】:

      猜你喜欢
      • 2014-11-23
      • 1970-01-01
      • 2014-09-02
      • 2014-08-31
      • 2015-08-08
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      相关资源
      最近更新 更多