1
我正在學習如何使用的Neo4j和我使用的一些數據,我有一個JSON文件建立一個比較大的社交網絡關係。的Neo4j - 創建從JSON名單
文件結構如下所示:
{
"users": [
{"id":"1", "name":"Bob", friends: ["2","3"]},
{"id":"2", "name":"Alice", friends: ["1"]},
{"id":"3", "name":"Robert", friends: ["1","4","5"]},
...
]
}
繼this guide我設法用下面的Cypher支架查詢創建的所有節點:
WITH {json} AS data
UNWIND data.users AS user
MERGE (u:User {user_id: user.id, name: user.name})
但現在我卡住了我m不太清楚如何創建friends
字段中定義的節點之間的關係。我應該UNWIND
friends
字段嗎?我是否應該以某種方式遍歷我創建的每個節點並與其朋友建立關係?也許這是一個基本問題,但我剛剛開始與Cypher。
我想你的第二個解決方案,我不得不user'加上'的'WITH'聲明以編譯。無論如何,它不會創建任何節點。 – Alessandro
良好的捕獲 - 我更新了查詢2和3以反映用戶添加到'WITH'子句。第二個查詢是爲了在第一個查詢創建節點後運行的。第三個查詢是爲了一次創建節點和關係。 –
對不起,我誤解了。我的查詢+你的第二個查詢工作,而第三個似乎掛起,永遠不會完成。 (如果您熟悉Neo4j的Java驅動程序,它似乎永遠不會關閉'Transaction')。我正在用100行的示例文件測試這些查詢,但我的實際JSON文件包含近百萬行,因此我不知道這些方法是否可行。我沒有意識到他們太重了。 – Alessandro