簡體   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