Ich verwende Chiffre. Ich versuche, alle ausgehenden Beziehungen zu löschen, bevor ich neue in derselben Abfrage erstelle. Ich habe seltsame Situation, wenn die Beziehungen/Knoten bereits existierten, funktioniert es wie erwartet. wenn Sie nie erstellt worden, bevor ich:Ausgehende Beziehungen für dieselbe Abfrage löschen und zusammenführen
(no changes, no rows)
Dies ist meine Frage:
match (user{userId:'a'})-[r:nearby_wifi]->() delete r
MERGE (p1:BT{userId:'a'}) WITH p1, [{bssid:"0a:18:d6:c1:3d:fd",level:"-51",timestamp:"1973-08-27 02:26:35.423",venueName:""},{bssid:"04:18:d6:c2:3e:2a",level:"-55",timestamp:"1973-08-27 02:26:35.425",venueName:""},{bssid:"0e:18:d6:c1:3d:fd",level:"-53",timestamp:"1973-08-25 11:06:07.392",venueName:""}] AS wifis
UNWIND wifis AS wifi
MERGE (p2:WIFI{bssid: wifi.bssid})
MERGE (p1)-[r1:nearby_wifi]->(p2)
SET r1.dist=wifi.dist
SET p1.lastTimeActive=1460378030215
SET p2.level=wifi.level
SET p2.timestamp=wifi.timestamp
SET p2.venueName=wifi.venueName
Jede Idee, warum bei der Kombination löschen und die Zusammenführung Hinrichtungen habe ich keine Änderungen (wenn Graph leer)?
Danke.
Optionale Übereinstimmung hat den Trick gemacht. aber ich bin mir nicht sicher, warum ich das verstehe. Warum, wenn das Diagramm leer ist, wird die optionale Übereinstimmung die zweite Abfrage ausführen lassen? – rayman
Ich fürchte, mein Wissen ist nicht tief genug, um diese Frage zu beantworten. Ich habe es durch Übung herausgefunden und angenommen, dass, wenn irgendeine Abfrage nichts zurückgibt (nicht null, null ist etwas), sie nicht weiter ausgeführt wird, aber ich habe wirklich nie nach dieser Fiture-Explonation in der Dokumentation gesucht. – Evgen