尝试更新文档(如果存在),否则创建具有相同数据的文档。我也需要使用 anIndex而不是 direct来做到这一点Ref。
在我确定它已经存在的情况下,使用它来更新。但在这种情况下,由于无法确定是否Ref存在,它会引发错误。尝试检查是否Ref存在,但这不起作用,因为Get失败。
q.Update(
q.Select(["ref"], q.Get(q.Match(q.Index("fromUUID"), request.UUID))),
{
data: request
}
)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。谢谢。
检查 Ref 是否存在是正确的方法,但您应该使用q.Exists而不是Get(这会在您发现时失败。您也可以使用q.Let来避免一些重复。类似于以下内容:
q.Let({
match: q.Match(q.Index('fromUUID'), request.UUID),
data: { data: request }
},
q.If(
q.Exists(q.Var('match')),
q.Update(q.Select('ref', q.Get(q.Var('match'))), q.Var('data')),
q.Create(q.Collection('Foos'), q.Var('data'))
)
)
Run Code Online (Sandbox Code Playgroud)