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

How to update information in an existing node instead of creating a new one using Dgraph?

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

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

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

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

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

例如,完整的突变是

{
  set {
    <0x2> <name> "modified-name" .
  }
}

. 终止序列,还有一个可选的第四个参数,您也可以使用它来分配 label

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