Ich kann keinen Weg finden, einen Beziehungstyp in Cypher zu ändern. Ist diese Operation überhaupt möglich? Wenn nicht: Wie kann dieses Ergebnis am besten erreicht werden?neo4j cypher: Wie man den Typ einer Beziehung ändert
Antwort
Leider ist momentan keine direkte Änderung des Rel-Typs möglich.
können Sie tun:
MATCH (n:User {name:"foo"})-[r:REL]->(m:User {name:"bar"})
CREATE (n)-[r2:NEWREL]->(m)
// copy properties, if necessary
SET r2 = r
WITH r
DELETE r
brilliant! (hinzugefügt 'WITH' sonst die Abfrage fehlgeschlagen ist) – Sovos
Ausgezeichnete Antwort. Dies löscht jedoch nur die Beziehung & retourniert die ID dieser Beziehung & zeigt keine aktualisierte Beziehung an, bis die Klausel 'WITH' hinzugefügt wurde, wie oben erwähnt und von @LoveTW beantwortet. Ich gebe dir "+ 1" für die schnellste Antwort **. – OO7
Ich frage mich, ob Sie MERGE dafür jetzt nicht verwenden können? – Kebman
Sie können nicht, die Art einer Beziehung konstitutiv oder wesentlich ist, Etiketten Knoten im Gegensatz, die beliebige Beutel Gruppenknoten sind. (Siehe this q/a for an analogy.) Sie müssen die neue Beziehung erstellen, die alte löschen (und Eigenschaften kopieren, falls vorhanden).
Die Antwort von Michael Hunger
ist korrekt, aber es braucht noch with
in dieser Chiffre Abfrage. WITH
kann verwendet werden, wenn Sie verschiedene Operationen in einer Chiffreabfrage wechseln möchten. http://docs.neo4j.org/chunked/stable/query-with.html
MATCH (n:User {name:"foo"})-[r:REL]->(m:User {name:"bar"})
CREATE (n)-[r2:NEWREL]->(m)
SET r2 = r
WITH r
DELETE r
Ich verwende die folgenden, wenn es zu ändern.
match (from:Label1 { prop: 1 })-[r:RELATIONSHIP]->(to:Label2 { prop: 2 })
with from, r, to
create (from)-[:NEW_RELATIONSHIP]->(to)
with r
delete r
- 1. Wie aktualisiert oder ändert Wert in cypher neo4j
- 2. Wie Werte Eigenschafts-Array Cypher-Neo4j schieben
- 3. Neo4j cypher optimization
- 4. Neo4j Check Eigenschaft cypher
- 5. Neo4J Cypher Datentyp Konvertierung
- 6. Knoten zu finden, die keine spezifische Beziehung haben (Cypher/Neo4j)
- 7. Wie Batch Neo4j Cypher fragt
- 8. regex in cypher Neo4j
- 9. Neo4j/Cypher gleichzeitig MERGE
- 10. Neo4j-Cypher: Einstellen der Anzeigeparameter über Cypher.
- 11. Neo4j Cypher Abfrage mit Subselect
- 12. Neo4j Cypher-Abfrage, um den gesamten Graphen anzuzeigen, einschließlich Beziehungseigenschaften?
- 13. neo4j/cypher - wie fügt man einer Synonymsammlung ein neues "Synonym" hinzu?
- 14. String-Verkettung in Cypher Neo4j
- 15. Java Neo4j Cypher oder Match
- 16. Wie gibt man den Beziehungstyp mit den Cypher-Abfragen von Neo4J zurück?
- 17. Neo4j 3.0.0 + RAUM in Cypher
- 18. Wie man zufällige Datensätze in Neo4j mit Cypher zurückgibt?
- 19. Cypher Neo4J - CASE Ausdruck mit MERGE
- 20. Neo4J Cypher Abfrage - IN Sammlung?
- 21. Hinzufügen einer Beziehung zu bestehenden Knoten mit Cypher
- 22. Leistung von CYPHER 2.3 in Neo4j Abfrage
- 23. Neo4j Cypher Erstellen v2 Einzigartig Relation Gekennzeichnet mit Feldern ändern
- 24. Neo4j doppelte Beziehung
- 25. Neo4j/Cypher Löschen mit Where "Unbekannter Bezeichner"
- 26. Neo4j Beziehung Liniendesign
- 27. Neo4j Cypher Abfrage mit mehreren Bedingungen
- 28. Wie Abfragen von Eigenschaften mit Bindestrichen in Neo4j mit Cypher
- 29. "Keine Beziehung" in cypher Query
- 30. Wie man den Header einer HttpUrlConnection ändert
Wenn Sie die [apoc Verfahren Plugin] verwenden (https://neo4j-contrib.github.io/neo4j-apoc-procedures/) Sie können einfach verwenden 'nennen apoc.refactor.setType (rel ' NEW-TYPE ') ', um den Beziehungstyp einfach zu ändern. Es tut automatisch, was Sie sonst manuell tun müssten (gemäß den Antworten). – ADTC