Csv neo4j双退卷分体式

Csv neo4j双退卷分体式,csv,neo4j,load,Csv,Neo4j,Load,我有以下.csv文件 day,month,year,mps,party,subjectofquest,typeofquest,period,ministry<br/> "1","1","2012","mp1,mp2,mp3","party1","subject1","type1","1","ministry1,ministry2" load csv with headers from " file:///test/MESA2.csv " AS row <br/>


我有以下.csv文件

day,month,year,mps,party,subjectofquest,typeofquest,period,ministry<br/>
"1","1","2012","mp1,mp2,mp3","party1","subject1","type1","1","ministry1,ministry2"
load csv with headers from " file:///test/MESA2.csv " AS row <br/> 
  WITH row, split(row.mps, ",") AS mps <br/> 
  UNWIND mps AS mpname  <br/> 
  MERGE (p1:Question {questsub:row.subjectofquest})<br/>
  MERGE (p2:MP {mpname: mpname})<br/>
  MERGE (p2)-[:ASKS_MKE]->(p1)<br/>
  WITH row, split(row.ministry, ",") AS ypourgeio <br/> 
  UNWIND ypourgeio AS ypourgeio1<br/>
  MERGE (p3:Ypname{ypourgeio: ypourgeio}) <br/>
  MERGE (p1)-[:REFERS]->(p3)<br/>
日、月、年、议员、政党、主题、任务类型、期间、部门
“1”、“1”、“2012”、“mp1、mp2、mp3”、“party1”、“subject1”、“type1”、“1”、“ministry1、ministry2”
在马克·李约瑟的指导下,我尝试将议员和部会的小组分开()
它们中的每一个都可以作为独立的命令来完成,但我不知道如何完成(经过这么多的努力…
为mp单元格执行任务的代码如下:

load csv with headers from " file:///test/MESA2.csv " AS row<br/>  
  WITH row, split(row.mps, ",") AS mps<br/>  
  UNWIND mps AS mpname  <br/> 
  MERGE (p1:Question {questsub:row.subjectofquest})<br/>
  MERGE (p2:MP {mpname: mpname})<br/>
  MERGE (p3:Ministry{questministry: row.ministry})<br/>
  MERGE (p2)-[:ASKS_MKE]->(p1)<-[:REFERS]-(p3);<br/>
从加载带有标题的csv”file:///test/MESA2.csv “作为第行
带行,拆分(row.mps,“,”)为mps
将mps作为mpname展开
合并(p1:问题{questsub:row.subjectofquest})
合并(p2:MP{mpname:mpname})
合并(p3:Ministry{questministry:row.Ministry})
合并(p2)-[:ASKS_MKE]->(p1)(p1)
带行,拆分(row.ministry,“,”)为ypourgeio
将ypourgeio作为ypourgeio1展开
合并(p3:Ypname{ypourgeio:ypourgeio})
合并(p1)-[:引用]->(p3)
请提供帮助(我想我可以通过VB在excel中拆分,但那会很糟糕!)
提前谢谢你
内克塔里奥斯

我不确定你是否在国会议员和各部都有不同数量的子领域,但假设你有,并且你想让所有人都匹配,试试这个:

LOAD csv WITH HEADERS FROM " file:///test/MESA2.csv " AS row
WITH row, SPLIT(row.mps, ",") AS mps, SPLIT(row.ministry, ",") as ministries
UNWIND mps AS mpname
WITH row, mpname, ministries
UNWIND ministries AS ministry
MERGE (p1:Question {questsub:row.subjectofquest})
MERGE (p2:MP {mpname: mpname})
MERGE (p3:Ministry{questministry: ministry})
MERGE (p2)-[:ASKS_MKE]->(p1)<-[:REFERS]-(p3);
从加载带有标题的csv”file:///test/MESA2.csv “作为一排
行,拆分(row.mps,“,”)为mps,拆分(row.ministry,“,”)为部委
将mps作为mpname展开
行、名称、部委
将各部作为部展开
合并(p1:问题{questsub:row.subjectofquest})
合并(p2:MP{mpname:mpname})
合并(p3:Ministry{questministry:Ministry})

合并(p2)-[:ASKS_MKE]->(p1)在您提供一些示例代码之前,恐怕没有办法提供帮助。这里是我完成1单元拆分的第一次尝试:从file:///test/MESA2.csv “作为带行的行,拆分(row.mps,”)作为mps展开mps作为mpname合并(p1:questsub:row.subjectofquest})合并(p2:MP{mpname:mpname})合并(p3:Ministry{questministry:row.Ministry})合并(p2)-[:ASKS_MKE]->(p1)Jim非常感谢,但它不起作用(我想我有时也尝试过…)未定义部委(第5行,第8列)“将部委作为部委展开”^Neo.ClientError.Statement.invalidSyntax当前的问题是,您需要命名要在
WITH
子句中继续使用的标识符。类似于
…WITH mpname,ministers…
。如果您不命名,它将被“遗忘”,实际上,
ministers
没有定义。我添加了ministr对jaderberg提到的WITH子句进行了修改。很好的理解!:((似乎是一个双重交叉问题…再次没有…行未定义(第6行,第30列)“合并(p1:questsub:row.subjectofquest})”^Neo.ClientError.Statement.InvalidSyntax。现在是“感觉”的行孤立的…我可能会在这些集合上使用
FOREACH
,而不是
UNWIND