我有一个带有Payments集合的事件对象。当事件被取消时,我需要将这些付款添加到相应的用户对象退款集合中。根据文档,我得到了以下原理图脚本:
_(this.Payments).forEach(function(payment) {
var user = LoadDocument(payment.UserId);
user.Refunds.push(new { EventId = this.Id, Payment = payment });
}
这个原理图脚本中有两件事我没有在文档中找到正确的方法: 1.按Id加载另一份文件(第2行) 2.创建新的json-object(第3行)
答案 0 :(得分:2)
LoadDocument()是正确的,但加载的文档在加载到修补程序中时,不会被任何工作单元自动跟踪。
你必须告诉Raven更新/存储该文件:
var user = LoadDocument(payment.UserId);
user.Refunds.push({ EventId = this.Id, Payment = payment });
PutDocument(user.UserId, user);
如果您真的想从补丁中执行此操作,则上述操作可能会有效。但是,这似乎是一个更具域特定的操作,并且可能更好地模拟应用程序代码中的行为(即引发事件并从代码向用户对象添加退款)。不是100%确定Raven如何处理补丁中的交易等等......
编辑:对于您的第二个问题:您不需要使用新的'关键字