查询在 neo4j 中获取一张图而不是两张图

Query to obtain one graph in neo4j instead of two

我正在尝试使用以下查询在 neo4j 中创建图表:

LOAD CSV WITH HEADERS FROM 'file:///MyData.csv' AS row

MATCH (conta:Conta {nome: row.`Conta Origem`})
MATCH (contad:ContaD {nome: row.`Conta Destino`})
MERGE (conta)-[op:Movimentação]->(contad)
  ON CREATE SET op.Valor = toFloat(row.Valor), op.`Tipo de Gasto` = row.`Tipo de Gasto`, op.`Tipo de movimentacao`=row.`Tipo de movimentacao`;

输出为:

但这并不是我想要的,因为输出显示了两个节点 1 未连接的图形;我的意思是,我想要的是节点 1011 连接到 red-centered 节点 1.

问题是它们代表通过银行账户进行的交易,而账户 11 和 10 是账户 1 的原始账户,而账户 1 又是所有其他账户的原始账户。

我怎样才能继续并更改查询以使其正确?我是 cypher 的新手,如果很明显,我很抱歉。

编辑:数据样本如下所示:

在您显示的示例 csv 文件中,2016-01-15 06:00:00 中节点 11 作为原点和节点 1 作为目标的行未连接,因为 :ContaD 上的匹配未找到节点 1;

假设;

line1: MATCH (conta:Conta {nome: row.`Conta Origem`})
line2: MATCH (contad:ContaD {nome: row.`Conta Destino`})
line3: MERGE (conta)-[op:Movimentação]->(contad)
  ON CREATE SET op.Valor = toFloat(row.Valor), op.`Tipo de Gasto` = row.`Tipo de Gasto`, op.`Tipo de movimentacao`=row.`Tipo de movimentacao`;

第1行; Conta 是 node11,没问题,发现

第2行; ContaD 没有 node1,所以没有返回行

第3行;跳过此行,因为第 2 行是空行并转到 excel

中的下一行

因此 node11(节点 Conta)将不会作为节点 ContaD 连接到 node1。

建议: 为什么需要用 Conta 分隔的标签 ContaD?您可以创建另一个标签 ContaD,其中包含与 Conta 相同的节点。将另一个标签添加到现有节点的语法。

match (n:Conta) set n :ContaD

您现在可能会遇到错误,因为已经创建了 ContaD。返回创建节点和边时的脚本,并与 Conta

一起创建标签 ContaD