当前位置: 首页 > 知识库问答 >
问题:

Neo4j使用FROM CSV同时创建节点和关系

顾乐心
2023-03-14
FromNodeID  ToNodeID   type    attribute1   attribute2   
   1          2       1        1234      1235
   3          2       1        1234      1235
  ...
load csv with headers from "file:///file.csv" as row
MERGE (FromNode {id:toInteger(row.FromNode)})-[:communicates 
{Type:toInteger(row.Type), attribute1:toInteger(row.attribute1), 
attribute2:toInteger(row.attribute2)}]->(ToNode 
{id:toInteger(row.ToNode)})

我希望它创建每个节点(而不是在已经存在具有相同ID的节点时创建新节点),并创建每个关系(在CSV中指定具有多个关系的节点中有多个关系from/to节点)。

实际发生的情况:它似乎创建了所有唯一的节点。它还创建了节点之间的关系,但它只为每个节点设置一个关系,而不考虑与多个其他节点进行通信的一些节点。

我很困惑,因为我的理解是,如果在数据库中还没有出现关系,它将创建关系,所以我认为它将创建CSV中指定的所有关系

共有1个答案

辛承志
2023-03-14
LOAD CSV WITH HEADERS FROM "file:///file.csv" AS row
MERGE (f:FromNode {id:toInteger(row.FromNode)})
MERGE (t:ToNode {id:toInteger(row.ToNode)})
MERGE (f)-[:communicates {
    Type:toInteger(row.Type), attribute1:toInteger(row.attribute1),
    attribute2:toInteger(row.attribute2)}
  ]->(t)
 类似资料:
  • 我开始将Neo4J与Spring数据Rest一起使用。我有一个用于建模节点和边的节点实体和关系实体。我能够使用postman创建具有以下内容的新节点。 我不确定创建节点之间关系的JSON格式是什么。例如: 创建新节点并与现有节点关联 任何关于我需要使用什么JSON的例子都将不胜感激。 我的节点实体和关系实体如下:

  • 我有一个csv格式的数据集。其中一个字段是类型,类似于枚举。基于此类型,我需要在使用csv LOAD加载数据时创建不同的类型、节点和关系。您可以在csv中调用具有定义子类型的属性的超级类型的行。 我真的不知道如何在Cypher中做到这一点。我唯一的选择是将一个csv文件拆分为每种类型的csv文件,并运行不同的密码吗?

  • 请有人给我指个正确的方向。

  • 我试图在Neo4j中创建节点之间的关系。我正在使用Neo4J(2.1.8社区) 我试图创建以下关系。 创建一个新的员工(节点),它将向DB中的Manager(节点)报告(空关系)(按名称搜索)。我使用了下面的查询。 我得到了下面的错误。 谁能告诉我这个问题出了什么问题?另外,如果这不是使用GraphRespository创建关系的正确方法,那么我还可以使用什么来实现同样的目的呢。 提前感谢。 注意

  • 我的代码!! 获取错误!! TypeError:无法读取B:\nodejs\newp\app中未定义的属性“name”。js:75:30在第二层。在路由的下一个(B:\nodejs\newp\node\u modules\express\lib\router\layer.js:95:5)(B:\nodejs\newp\node\u modules\express\lib\router\route.