微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果文档存在则更新,否则在floraldb中创建一个新文档

如何解决如果文档存在则更新,否则在floraldb中创建一个新文档

尝试更新文档(如果存在),否则创建具有相同数据的文档。我还需要使用?1dmy&urile=wcm%3apath%3a/mof_content/internet/moh/government/news+and+press+release/covid-19+report+update+227 而不是直接使用Index来做到这一点。

在我肯定已经存在的情况下,使用它进行更新。但是在这种情况下,由于无法确定Ref是否存在,因此会引发错误。尝试检查Ref是否存在,但是由于Ref失败而无法正常工作。

Get

任何帮助将不胜感激。谢谢。

解决方法

检查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')))
  )
)
,

您可以通过这种方式实现upsert:

Let(
  {
    UUID: '611c798e-24c8-11eb-adc1-0242ac120002',doc: Match('fromUUID',Var('UUID')),upsert: If(Exists(Var('doc')),Update(Select(['ref'],Get(Var('doc'))),{data:{val1:10,val2:20}}),Create(Collection('stackoverflow'),{data:{val1:1,val2:2,uuid:Var('UUID')}}))
  },Var('upsert')
)

索引在集合中搜索UUID(如果存在),更新文档。如果没有,请使用UUID加上任何字段/值对创建一个新文档。

让我知道这是否是您想要的。

Luigi

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。