Neo4j从CSV加入

时间:2018-03-25 22:13:16

标签: neo4j

我是以下示例节点:

SELECT `Team size`, COUNT(*) FROM ( SELECT COUNT(*) AS `Team size` FROM tblteamplayers GROUP BY TeamID ) t GROUP BY `Team size`

然后我在CSV文件中的这些节点之间进行连接/验证。

jq -r '.[0].properties.packageId'

我正在尝试使用CSV文件构建关系(主机之间的身份验证),但在创建关系之前,我无法完成查询。 有没有办法为类似于SQL连接的匹配创建别名?

{ "name": "host_1", "id": 0 } { "name": "host_2", "id": 1 }

我想制作一个别名,例如

{ "src_id": "291", "dest_id": "162" } { "src_id": "291", "dest_id": "257" } 根据我的研究,这似乎不可能。任何建议,将不胜感激。这是我的数据集结构的限制或问题吗?

1 个答案:

答案 0 :(得分:1)

您遇到的问题是您使用相同的变量n来引用这两个节点,因此无法正常工作。如果您想使用src_nodedest_node作为变量,您可以:

LOAD CSV WITH HEADERS FROM "file:///redteam_connections.csv" AS row
MATCH (destNode:nodes {id: toInteger(row.dest_id)}), (srcNode:nodes {id: toInteger(row.src_id)})
CREATE (destNode)-[:AUTHENTICATION]->(srcNode)

您肯定希望在:nodes(id)上添加索引,以便您的查找速度很快,并且您可能需要重新考虑:nodes标签。按照惯例,标签往往是大写的和单数的(复数通常用于实际收集()项目到列表中),因此:Node更合适。

如果您的CSV很大,我还建议您use periodic commit允许批处理并防止堆积。