如何更新现有节点中的信息而不是使用 Dgraph 创建新节点?

hem*_*nik 3 dgraph dgraph-dgo

我正在编写一个使用 Dgraph 来持久化对象的 Golang 应用程序。从文档中,我可以推断出UID每次我改变对象/运行代码时都会创建一个新节点,从而创建一个新节点。

有没有办法更新相同的节点数据而不是创建新节点?

我尝试将 更改UID"_:name"用于该UID字段,但即使这样每次运行应用程序时也会创建一个新节点。我希望能够更新现有节点,如果它已经存在于数据库中,而不是为它创建一个新节点。

Tom*_*myF 6

不幸的是,这些文档还不是很适合初学者:/

要修改/改变现有数据,您必须运行一个set操作并提供一个 rdf-triple,如<uid> <predicate> "value"/ <objectYouWantToModify> <attributeYouWantToModify> "quotedStringValue"。如果它不是属性而是边,则该值必须是 another <uid>

完整的突变将是例如

{
  set {
    <0x2> <name> "modified-name" .
  }
}
Run Code Online (Sandbox Code Playgroud)

.终止序列和有你可以用它来还指定一个可选的第四个参数label

查看https://www.w3.org/TR/n-quads/了解更多详情。