2 回答
TA贡献1757条经验 获得超7个赞
没有用于创建唯一定向关系的本机函数或 REST 端点。您可以为每个关系分配一个唯一的属性值并在关系属性上添加一个唯一的索引,或者您可以使用密码查询和 CREATE UNIQUE 子句。
http://neo4j.com/docs/stable/query-create-unique.html#_create_unique_relationships
TA贡献1775条经验 获得超8个赞
您可以使用我用于代码的以下函数。它有一个外部依赖
github.com/imdario/mergo
以下通用函数适用于任何类型的节点和关系。
func GetOrCreateRelationship(from *neoism.Node, to *neoism.Node, relType string, props neoism.Props) (relationship *neoism.Relationship) {
relationships, err := from.Relationships(relType)
if err == nil {
for _, relationship := range relationships {
endNode, err := relationship.End()
if err != nil {
continue
}
if endNode.Id() == to.Id() {
newProps, err := relationship.Properties()
if err != nil {
return relationship
}
if err := mergo.Merge(&newProps, props); err != nil {
relationship.SetProperties(newProps)
}
return relationship
}
}
}
relationship, err = from.Relate(relType, to.Id(), props)
if err != nil {
log.Printf("Cannot create relationship: %s", err)
}
return
}
- 2 回答
- 0 关注
- 160 浏览
添加回答
举报