gpt4 book ai didi

java - cypher 中的 FOREACH - neo4j

转载 作者:行者123 更新时间:2023-12-02 02:41:09 28 4
gpt4 key购买 nike

我对CYPHER QUERY LANGUAGE非常陌生,并且我正在研究节点之间的关系。我有一个包含多列和 1000 行的表格的 CSV 文件。我的表格模板是:

cdrType    ANUMBER    BNUMBER    DUARTION    
2 123 456 10
2 890 456 5
2 123 666 2
2 123 709 7
2 345 789 20

我已使用这些命令来创建节点和属性键。

LOAD CSV WITH HEADERS FROM "file:///2.csv" AS ROW
CREATE (:ANUMBER {aNumber:ROW.aNumber} ),
CREATE (:BNUMBER {bNumber:ROW.bNumber} )

现在我需要在表中的所有行之间创建关系,我认为 FOREACH 循环最适合我的情况。我创建了这个查询,但它给了我一个错误。查询是:

MATCH (a:ANUMBER),(b:BNUMBER)
FOREACH(i in RANGE(0, length(ANUMBER)) |
CREATE UNIQUE (ANUMBER[i])-[s:CALLED]->(BNUMBER[i]))

错误是:

Invalid input '[': expected an identifier character, whitespace, NodeLabel, a property map, ')' or a relationship pattern (line 3, column 29 (offset: 100)) " CREATE UNIQUE (a:ANUMBER[i])-[s:CALLED]->(b:BNUMBER[i]))"

我需要每一行的关系。就像我的例子一样。 123 - 被叫 -> 456 、890 - 被叫 -> 456。所以我需要直观地表示哪个号码调用哪个号码的调用数据。为此,我需要在所有行之间创建关系。

有人知道如何解决这个问题吗?

最佳答案

关于:

LOAD CSV WITH HEADERS FROM "file:///2.csv" AS ROW
CREATE (a:ANUMBER {aNumber:ROW.aNumber} )
CREATE (b:BNUMBER {bNumber:ROW.bNumber} )
MERGE (a)-[:CALLED]->(b);

据我所知,它并不比那个更复杂。

希望这有帮助!

问候,汤姆

关于java - cypher 中的 FOREACH - neo4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45431497/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com