如何使用 属性 信息生成关系 [Neo4j]
How to generate relationships using property information [Node4j]
我导入了一个 CSV,其中每个节点包含 3 列。 ID、parent_id 和标题。这是我在 mysql 中的一个简单的树结构。现在我需要在考虑 parent_id 数据的情况下创建这些节点之间的关系。所以每个节点到节点将有 2 个关系,如 parent 和 child。我对 node4j 和建议真的很陌生?
我尝试跟随,但没有成功
MATCH (b:Branch {id}), (bb:Branch {parent_id})
CREATE (b)-[:PARENT]->(bb)
看来你的密码已经很接近了。您要做的第一件事是在标签 Branch
.
的 id
和 parent_id
属性上创建索引
CREATE INDEX ON :Branch(id)
CREATE INDEX ON :Branch(parent_id)
创建索引后,您希望将所有节点与标签 Branch
匹配(我会用特定值来限制它,以确保您创建的正是您想要的)以及每个节点通过匹配您的索引属性找到相应的父项。
MATCH (b:Branch), (bb:Branch)
WHERE b.id = ???
AND b.parent_id = bb.id
CREATE (b)-[:PARENT]->(bb)
一旦你在一个分支上证明了这一点并且你得到了你期望的结果,我会 运行 它一次用于更多分支。您仍然可以根据图表中的分支数量选择分批进行。
创建所有 :PARENT
关系后,您可以选择删除所有 parent_id
属性。
MATCH (b:Branch)-[:PARENT]->(:Branch)
WHERE exists(b.parent_id)
REMOVE b.parent_id
我导入了一个 CSV,其中每个节点包含 3 列。 ID、parent_id 和标题。这是我在 mysql 中的一个简单的树结构。现在我需要在考虑 parent_id 数据的情况下创建这些节点之间的关系。所以每个节点到节点将有 2 个关系,如 parent 和 child。我对 node4j 和建议真的很陌生?
我尝试跟随,但没有成功
MATCH (b:Branch {id}), (bb:Branch {parent_id})
CREATE (b)-[:PARENT]->(bb)
看来你的密码已经很接近了。您要做的第一件事是在标签 Branch
.
id
和 parent_id
属性上创建索引
CREATE INDEX ON :Branch(id)
CREATE INDEX ON :Branch(parent_id)
创建索引后,您希望将所有节点与标签 Branch
匹配(我会用特定值来限制它,以确保您创建的正是您想要的)以及每个节点通过匹配您的索引属性找到相应的父项。
MATCH (b:Branch), (bb:Branch)
WHERE b.id = ???
AND b.parent_id = bb.id
CREATE (b)-[:PARENT]->(bb)
一旦你在一个分支上证明了这一点并且你得到了你期望的结果,我会 运行 它一次用于更多分支。您仍然可以根据图表中的分支数量选择分批进行。
创建所有 :PARENT
关系后,您可以选择删除所有 parent_id
属性。
MATCH (b:Branch)-[:PARENT]->(:Branch)
WHERE exists(b.parent_id)
REMOVE b.parent_id