Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在neo4j中使用cypher的双向连通图_Neo4j_Cypher - Fatal编程技术网

在neo4j中使用cypher的双向连通图

在neo4j中使用cypher的双向连通图,neo4j,cypher,Neo4j,Cypher,我是neo4j和cypher的新手,如果我需要改进我的问题,请告诉我,我会努力让它更有意义 我有一个.csv格式的数据集,共有1000行。我已经在neo4j本地主机中使用cypher导入了该数据集http://localhost:7474/browser/。这是示例数据集图像 ACC和toacc中的列包含重复值。我想绘制连接图,在边和节点上显示fromacc和toacc的时间戳和数量 我已附上图形的图像: 我写的问题是: LOAD CSV WITH HEADERS FROM "file

我是neo4j和cypher的新手,如果我需要改进我的问题,请告诉我,我会努力让它更有意义

我有一个.csv格式的数据集,共有1000行。我已经在neo4j本地主机中使用cypher导入了该数据集<代码>http://localhost:7474/browser/。这是示例数据集图像

ACC和toacc中的
列包含重复值。我想绘制连接图,在边和节点上显示
fromacc
toacc
时间戳和
数量

我已附上图形的图像:

我写的问题是:

   LOAD CSV WITH HEADERS FROM "file:///datanew.csv"As row CREATE (demo:demo 
   {blockid:toInteger(row.id),blockhas:row.hash,txnid:row.txs,
   frmacc:row.frmacc,toacc:row.toacc,amount:toInteger(row.amount)})
   Create (p:demo{frm:demo.frmacc})-[r:transferred]- > 
   (q:demo{toa:demo.toacc})  return r
但我只得到了一个节点连接到另一个节点的重复

有人能帮我得到上图中所需的图表吗。提前谢谢

数据:


如果
row.id
是节点之间关系的标识符,那么对于每个
,您首先需要创建一对节点,然后在它们之间创建关系,然后设置关系属性。使用
merge
而不是
create
来避免每次创建新节点。例如:

UNWIND [{id:0,hash:"hash1",time_stamp:1231006505,txs:1,from:685031,to:97258,amount:65536},
{id:1,hash:"hash2",time_stamp:1231469665,txs:1,from:761055,to:97260,amount:65536},
{id:2,hash:"hash3",time_stamp:1231469744,txs:1,from:2039922,to:97261,amount:1000000},
{id:3,hash:"hash4",time_stamp:1231470173,txs:1,from:2271509,to:584573,amount:3000000},
{id:4,hash:"hash5",time_stamp:1231470988,txs:1,from:2271510,to:584574,amount:3000000},
{id:5,hash:"hash6",time_stamp:1231471428,txs:1,from:2271511,to:584577,amount:3000000},
{id:6,hash:"hash7",time_stamp:1231471448,txs:2,from:685031,to:16785,amount:1000000},
{id:7,hash:"hash8",time_stamp:1231471478,txs:1,from:685031,to:97258,amount:677888},
{id:8,hash:"hash9",time_stamp:1231471498,txs:2,from:97258,to:685031,amount:567890},
{id:9,hash:"hash0",time_stamp:1231471444,txs:1,from:97258,to:584577,amount:100000}] AS row

MERGE (F:demo {id: row.from})
MERGE (T:demo {id: row.to})
MERGE (F)-[r:transferred {id: row.id}]->(T)
SET r.hash = row.hash,
    r.time_stamp = row.time_stamp,
    r.txs = row.txs,
    r.amout = row.amout

RETURN F, T, r

我对你的数据感到困惑。您有
from
to
列,但是您在哪里创建具有与这些值相关的属性的节点,以便以后可以查找它们?数据导入的标准方法是1。创建所需的节点,包括与稍后导入的关系创建csv对应的ID或属性。然后2。加载关系导入CSV,该CSV具有与先前导入的节点相匹配的字段属性,然后合并它们之间的关系。我认为您确实需要重新阅读文档,包括合并和加载CSV。您能否在加载CSV之前澄清图形中是否存在数据(如果存在,请说明哪些数据)?我也不理解您对:demo节点的用法,您正在使用各种行数据创建一个demo节点,然后还尝试创建具有完全不同数据的新:demo节点。您能回答一个问题吗
UNWIND [{id:0,hash:"hash1",time_stamp:1231006505,txs:1,from:685031,to:97258,amount:65536},
{id:1,hash:"hash2",time_stamp:1231469665,txs:1,from:761055,to:97260,amount:65536},
{id:2,hash:"hash3",time_stamp:1231469744,txs:1,from:2039922,to:97261,amount:1000000},
{id:3,hash:"hash4",time_stamp:1231470173,txs:1,from:2271509,to:584573,amount:3000000},
{id:4,hash:"hash5",time_stamp:1231470988,txs:1,from:2271510,to:584574,amount:3000000},
{id:5,hash:"hash6",time_stamp:1231471428,txs:1,from:2271511,to:584577,amount:3000000},
{id:6,hash:"hash7",time_stamp:1231471448,txs:2,from:685031,to:16785,amount:1000000},
{id:7,hash:"hash8",time_stamp:1231471478,txs:1,from:685031,to:97258,amount:677888},
{id:8,hash:"hash9",time_stamp:1231471498,txs:2,from:97258,to:685031,amount:567890},
{id:9,hash:"hash0",time_stamp:1231471444,txs:1,from:97258,to:584577,amount:100000}] AS row

MERGE (F:demo {id: row.from})
MERGE (T:demo {id: row.to})
MERGE (F)-[r:transferred {id: row.id}]->(T)
SET r.hash = row.hash,
    r.time_stamp = row.time_stamp,
    r.txs = row.txs,
    r.amout = row.amout

RETURN F, T, r