保存后,Parse.com云代码总计

时间:2014-10-27 19:01:57

标签: javascript algorithm parse-platform cloud-code

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

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

然后我有另一个课程NodeTotals,其中包含根据特定条件分组的所有cost的总数。

我正在尝试实施高效方法来执行云代码中的总计。我最初的方法是使用AfterSave函数(Node):

  • 查询符合我标准的所有现有Node
  • 对返回结果中的cost求和
  • 查询是否存在NodeTotal条目,如果是则更新总计,或者如果不存在则创建新条目

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

  1. 在每个Node保存上执行所有这些查询都不错
  2. 如果客户端创建了一堆新的Node对象,然后执行SaveAll,我的AfterSave函数的多个实例将被并行调用 - 每个实例都认为没有NodeTotal条目,所以创建一个新的(上面的第三点) - 导致创建多个NodeTotal行,其中真正应该只有一个
  3. 我很确定必须有更好的方法来做我想做的事情 - 只需要一些明亮的火花来指出它!

1 个答案:

答案 0 :(得分:0)

对于遇到这种情况的人,我最终做了以下事情:

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

for issue 2)使用Parse Object.Increment函数来确保原子操作