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後、私は次のようサイファークエリを持つすべてのノードを作成するために管理:
WITH {json} AS data
UNWIND data.users AS user
MERGE (u:User {user_id: user.id, name: user.name})
をしかし、今、私は「こだわっていますfriends
フィールドに定義されているように、ノード間の関係を作成する方法がわかりません。すべきかUNWIND
friends
フィールドもありますか?私は何とか作成したすべてのノードを何度も繰り返して、その友人との関係を追加する必要がありますか?たぶんこれは基本的な質問ですが、私はCypherから始めています。
私はあなたの第二の溶液を試してみましたが、私はコンパイルするために 'WITH'書に' user'を追加する必要がありました。とにかく、ノードを作成しません。 – Alessandro
良いキャッチ - 私は 'WITH'句へのユーザーの追加を反映するようにクエリ2と3を更新しました。 2番目のクエリは、ノードを作成した最初のクエリの後に実行されるものでした。 3番目のクエリはノードと関係を1回のパスで作成することを意図していました。 –
申し訳ありませんが、私は誤解しました。私のクエリ+あなたの2番目のクエリの仕事、3番目のハングアップと決して完了するようです。 (もしあなたがNeo4j用のJavaドライバに慣れていれば、 'Transaction'を閉じることはないと思われます)。これらのクエリを100行のサンプルファイルでテストしていますが、実際のJSONファイルにはほぼ100万行が含まれているため、これらのアプローチのいずれかが実現可能かどうかはわかりません。私は彼らがとても重かったことを知らなかった。 – Alessandro