ich lerne, wie Neo4j verwenden, und ich baue ein ziemlich großes soziales Netzwerk einige Daten verwenden, die ich in einem JSON-Datei haben.Neo4j - Erstellen Sie Beziehungen von JSON Liste
Die Dateistruktur sieht wie folgt aus:
{
"users": [
{"id":"1", "name":"Bob", friends: ["2","3"]},
{"id":"2", "name":"Alice", friends: ["1"]},
{"id":"3", "name":"Robert", friends: ["1","4","5"]},
...
]
}
this guide Im Anschluss ich es geschafft, alle Knoten mit dem folgenden Cypher Abfrage zu erstellen:
WITH {json} AS data
UNWIND data.users AS user
MERGE (u:User {user_id: user.id, name: user.name})
Aber jetzt bin ich stecken ich m nicht ganz sicher, wie die Beziehungen zwischen den Knoten, wie im Feld friends
definiert, zu erstellen. Sollte ich das UNWIND
das friends
Feld auch? Sollte ich irgendwie über jeden von mir erstellten Knoten iterieren und eine Beziehung zu seinen Freunden hinzufügen? Vielleicht ist das eine grundlegende Frage, aber ich beginne gerade mit Cypher.
Ich habe versucht, Ihre zweite Lösung und ich hatte 'user' zur' WITH' Anweisung zu geben, um zu kompilieren . Wie auch immer, es erstellt keinen Knoten. – Alessandro
good catch - ich habe die Abfrage 2 und 3 aktualisiert, um den Zusatz des Benutzers zur Klausel 'WITH' zu reflektieren. Die zweite Abfrage sollte nach der ersten Abfrage ausgeführt werden, mit der die Knoten erstellt wurden. Die dritte Abfrage sollte die Knoten und die Beziehungen in einem Durchgang erstellen. –
Entschuldigung, ich missverstanden. Meine Abfrage + Ihre zweite Abfrage funktioniert, während die dritte scheint zu hängen und nie abgeschlossen. (Wenn Sie mit dem Java-Treiber für Neo4j vertraut sind, scheint es, dass es nie die 'Transaktion' schließt). Ich teste diese Abfragen mit einer Beispieldatei von 100 Zeilen, aber meine eigentliche JSON-Datei enthält fast eine Million Zeilen, daher weiß ich nicht, ob einer dieser Ansätze durchführbar ist. Ich wusste nicht, dass sie so schwer sind. – Alessandro