我有一个AfterSave
函数可以根据刚刚保存的对象的先前值更新其他内容。仅仅知道对象已经改变object.existed()
是不够的。
有没有办法在不实施昂贵的解决方法和增加 API 调用次数的情况下获取对象属性的先前值?
甚至可以在AfterSave
函数中获取对象的先前值吗?
当我打电话时object.previous("value")
,我得到一个未定义的值。
我有一个AfterSave
函数可以根据刚刚保存的对象的先前值更新其他内容。仅仅知道对象已经改变object.existed()
是不够的。
有没有办法在不实施昂贵的解决方法和增加 API 调用次数的情况下获取对象属性的先前值?
甚至可以在AfterSave
函数中获取对象的先前值吗?
当我打电话时object.previous("value")
,我得到一个未定义的值。
不知道这是否有帮助,或者它是否被认为是一种解决方法的成本太高,但您可以向正在更新的对象添加一列,以存储原始列的先前值。这将允许您访问AfterSave
函数中的先前值。
不幸的是,我没有评论 dstefanis 方法的声誉。
当一个端点改变值时,这种方法很好 - 实际上我之前已经使用它来达到这个目的。
有一个关键限制是,如果多个端点正在写入,它们可能仍会继续覆盖“当前”和“旧”字段。这意味着它不能用来给出任何严格的保证——例如“这个字段永远不会被递减”。
一种冲突安全的方法是通过 objectId 进行解析查询,并获取旧值。然后,您可以自己解决冲突。我已经对此进行了测试和工作:-)