neo4j - 从csv创建两个节点之间具有不同属性的多个相同类型的关系
问题描述
在 Neo4jDesktop 中的两个节点之间创建具有不同属性的多个相同类型的关系时,我遇到了问题。
Nodes dataset:
File Name: 1.csv
File Contents:
Id,Desc
A,Alpha
B,Beta
C,Charlie
D,Doyce
Relationships Dataset:
File Name: 2.csv
File Contents:
SeqNo,Date,Count,Weight,From,To
0,2018-04-01,12,308,A,B
1,2018-04-01,3,475,B,C
2,2018-04-01,23,308,C,D
3,2018-04-01,32,524,D,A
4,2018-04-01,0,308,A,C
5,2018-04-01,23,237,B,D
6,2018-04-01,54,308,B,A
7,2018-04-01,23,237,D,B
8,2018-04-01,18,308,D,C
9,2018-04-01,23,308,C,A
10,2018-04-01,78,475,B,C
11,2018-04-01,67,308,A,B
12,2018-04-01,56,237,D,B
13,2018-04-01,34,308,A,C
14,2018-04-01,27,524,A,D
15,2018-04-01,84,237,D,B
// Create Nodes
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/1.csv" AS row
CREATE (:Node {Id: row.Id, Desc: row.Desc});
// Create Relationships
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/2.csv" AS row
MERGE (from:Node {Id: row.From})
MERGE (to:Node {Id: row.To})
MERGE (from)-[rel:RELATED_AS]->(to)
ON CREATE SET rel.SeqNo = toInt(row.SeqNo),
rel.Date = row.flightDate,
rel.Count = toInteger(row.Count),
rel.Weight = toFloat(row.Weight)
此语法有效并且仅创建 11 个关系,两个节点之间具有传入和传出关系。
它忽略了 AB、BC、AC 和 DB 之间的附加关系(2 个附加关系)。
如何创建包含所有 16 个关系的图形?
提前致谢。
梅尔。
解决方案
您的第二个查询是 MERGING 关系(from)-[rel:RELATED_AS]->(to)
,因此 Cypher 匹配该模式(如果存在)。因此,后续的匹配,但由于该ON CREATE
语句,值永远不会更新。
由于您希望每次都创建关系,因此您可以将语句替换为以下内容。
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/2.csv" AS row
MERGE (from:Node {Id: row.From})
MERGE (to:Node {Id: row.To})
CREATE (from)-[rel:RELATED_AS {SeqNo: row.SeqNo, Date: row.flightDate, Count: toInteger(row.Count), Weight: toFloat(row.Weight)}]->(to)
推荐阅读
- ansible - 为什么 ansible 模块 win_template 没有看到我的 Windows 文件夹?
- angular - 我有一个formArray,在那个formArray中我只有formControls,而不是formGroup,我怎样才能循环通过html中的控件?
- swift - 从 SwiftUI 视图中访问参与者的隔离状态
- php - Doctrine hydrator 用另一个相关实体覆盖一个相关实体
- python - 如何使用 mplfinance python 在 y 轴上添加 hlines 的值
- html - 如何从对象数组中获取每个项目的详细信息?
- ios-universal-links - 测试通用链接时出现“文件被机器人屏蔽”怎么办?
- postgresql - 将 postgres 11 升级到 12
- docker - 如何在不启动容器的情况下从 dockerfile 创建图像
- javascript - 如何获取从本地文件获取的元数据?