【发布时间】:2018-11-30 21:12:02
【问题描述】:
我编写了一个查询,如果存在,它会构建 2 个新节点,然后它只会更新属性并添加它们之间的关系。
当我第一次创建节点和关系时,一切都很顺利。
// This is the first run
MERGE (Kunal:PERSON)
ON CREATE SET
Kunal.name = 'Kunal',
Kunal.type = 'Person',
Kunal.created = timestamp()
ON MATCH SET
Kunal.lastUpdated = timestamp()
MERGE (Bangalore: LOC)
ON CREATE SET
Bangalore.name = 'Bangalore',
Bangalore.type = 'Location',
Bangalore.created = timestamp()
ON MATCH SET
Bangalore.lastUpdated = timestamp()
MERGE (Kunal)-[r1:LIVES_IN]->(Bangalore)
RETURN *
我在这里添加一个节点 Kunal(节点),他住在(关系)班加罗尔(节点)。第一次一切都很好。
下次我添加不同的节点时如下:
// Next time
MERGE (John:PERSON)
ON CREATE SET
John.name = 'John',
John.type = 'Person',
John.created = timestamp()
ON MATCH SET
John.lastUpdated = timestamp()
MERGE (Bangalore: LOC)
ON CREATE SET
Bangalore.name = 'Bangalore',
Bangalore.type = 'Location',
Bangalore.created = timestamp()
ON MATCH SET
Bangalore.lastUpdated = timestamp()
MERGE (John)-[r1:LIVES_IN]->(Bangalore)
RETURN *
我正在添加一个节点 John,他住在 (rel) 班加罗尔(节点)。
但这里的问题是,它再次从之前的合并语句中获取相同的节点值。
谁能解释一下?
如果我们使用 Python 驱动程序在循环内运行上述合并查询,那么解决方案是什么。
【问题讨论】: