使用函数调用在py2neo中创建节点
creating node in py2neo with function call
我想根据 func 中传递的参数创建一个节点。在此 createRelation 函数中,一个节点已知 "User",但其他节点可能存在也可能不存在。根据我想要创建的关系类型,我检查该类型的节点是否存在,如果不存在则创建然后创建关系。例如,新节点可以是一本书或一辆车。
def createRelationship(self, nodeName, value):
query = """
MATCH (u:User {username: {you}})
MERGE (b:nodeName {name: {value}})
ON CREATE SET b.name = {value}
CREATE UNIQUE (u) - [:OWNS] -> (b)
"""
return graph.cypher.execute(query, you=self.username, nodeName=nodeName, value=value)
我知道节点 属性 可以通过在 {} 中声明来用作传入的参数,但同样不适用于节点
看起来像 CREATE(很可能是 MERGE)语句中的动态标签 。
就是说,我不确定使用 SET 命令添加标签是否受到同样的限制。虽然显然这会用处不大,因为你的 MERGE 基本上没用,但我想你会有很多重复项。
我想根据 func 中传递的参数创建一个节点。在此 createRelation 函数中,一个节点已知 "User",但其他节点可能存在也可能不存在。根据我想要创建的关系类型,我检查该类型的节点是否存在,如果不存在则创建然后创建关系。例如,新节点可以是一本书或一辆车。
def createRelationship(self, nodeName, value):
query = """
MATCH (u:User {username: {you}})
MERGE (b:nodeName {name: {value}})
ON CREATE SET b.name = {value}
CREATE UNIQUE (u) - [:OWNS] -> (b)
"""
return graph.cypher.execute(query, you=self.username, nodeName=nodeName, value=value)
我知道节点 属性 可以通过在 {} 中声明来用作传入的参数,但同样不适用于节点
看起来像 CREATE(很可能是 MERGE)语句中的动态标签
就是说,我不确定使用 SET 命令添加标签是否受到同样的限制。虽然显然这会用处不大,因为你的 MERGE 基本上没用,但我想你会有很多重复项。