繁体   English   中英

我需要在 Neo4j 中手动创建所有节点吗?

[英]Do I need to create all nodes by hand in Neo4j?

我可能遗漏了一些东西,因为我是 Neo4j 的新手,但是看看他们的 Movie 图——可能是您学习该平台时使用的第一个图——他们给了我们一段非常大的代码,其中每个节点和标签以及属性是手工估算的,一个接一个。 好的,对于用于学习目的的小图来说似乎很公平。 但是,当我想导入 CSV 并根据该数据创建图表时,我应该如何进行? 我相信根本不需要手动输入。

我的数据看起来像这样:

日期 起源 命运 价值 类型 平衡
01-05-2021 一种 500 传输 2500

它有超过 10,000 行这样的行。 我将其加载为:

LOAD CSV FROM "file:///MyData.csv" AS data

RETURN data;

它奏效了。 数据已加载等。但现在我有一些问题:

1-如果我希望origin是一个节点,而destiny是另一个节点, type是边, value是属性,我该如何继续? 我的意思是,我知道如何像(a)->[]->(b)一样创建它,但是如何创建整个图形而不创建边边、节点、属性等...?

2- 我是否能够输入 select date并查看此图的时间演化? 我想查看 20-05-2021、01-05-2021 等的所有交易,看看它是如何演变的。 是否可以?

正如官方文档中的示例所示: https://neo4j.com/docs/operations-manual/current/tutorial/neo4j-admin-import/#tutorial-neo4j-admin-import

您可能需要为导入创建 3 个单独的文件:

首先:您需要 movies.csv 来导入带有 label:Movie 的节点

movieId:ID,title,year:int,:LABEL
tt0133093,"The Matrix",1999,Movie
tt0234215,"The Matrix Reloaded",2003,Movie;Sequel
tt0242653,"The Matrix Revolutions",2003,Movie;Sequel

第二:你需要 actors.csv 来导入节点 label:Actor

personId:ID,name,:LABEL
keanu,"Keanu Reeves",Actor
laurence,"Laurence Fishburne",Actor
carrieanne,"Carrie-Anne Moss",Actor

最后,您可以导入关系

如您所见,演员和电影已经导入。 所以现在你只需要指定关系。 在示例中,您正在以给定格式导入 ROLE 关系:

:START_ID,role,:END_ID,:TYPE
keanu,"Neo",tt0133093,ACTED_IN
keanu,"Neo",tt0234215,ACTED_IN
keanu,"Neo",tt0242653,ACTED_IN
laurence,"Morpheus",tt0133093,ACTED_IN
laurence,"Morpheus",tt0234215,ACTED_IN
laurence,"Morpheus",tt0242653,ACTED_IN
carrieanne,"Trinity",tt0133093,ACTED_IN
carrieanne,"Trinity",tt0234215,ACTED_IN
carrieanne,"Trinity",tt0242653,ACTED_IN

因此,正如您在 header 中看到的那样,您有以下值:START_ID - 关系从哪里开始,从哪个节点角色 - 属性名称(您可以在此处指定多个属性,只需确保 csv 格式包含它的数据):END_IN -关系结束的地方,到哪个节点:TYPE - 关系的类型

就这样:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM