2016-07-21 12 views
0

In Neo4j habe ich mehrere Knoten mit Eigenschaft Mengen von mehreren Längen.Wie kann man nur das letzte Element eines Eigenschaftssatzes von mehreren Knoten in Neo4j vergleichen, ohne die Länge des Eigenschaftssatzes zu kennen?

Zum Beispiel kann ein Satz von Knoten

(id:PERSON{userid:0, education_school_id[21,25,29]}) 
    (id:PERSON{userid:1, education_school_id[21]}) 
    (id:PERSON{userid:2, education_school_id[21,25]}) 
    (id:PERSON{userid:3, education_school_id[21,25,27]}) 
    (id:PERSON{userid:4, education_school_id[21,25,66]}) 
    (id:PERSON{userid:5, education_school_id[21,25,27]}) 
    (id:PERSON{userid:6, education_school_id[21,25,29,43,22]}) 
    (id:PERSON{userid:7, education_school_id[21,22]}) 
    (id:PERSON{userid:8, education_school_id[21,25]}) 
    (id:PERSON{userid:9, education_school_id[21,25,27,24,32]}) 
    (id:PERSON{userid:10, education_school_id[21,25,66,29]}) 
    (id:PERSON{userid:11, education_school_id[21,25,44]}) 

Jetzt möchte ich eine Chiffre-Abfrage-Anweisung, die nur die letzte Eigenschaft aller Eigenschaftssätzen und Gruppe den Knoten entsprechend ihrer Benutzer-ID vergleicht wie folgt

29 0,10 
21 1 
25 2,8 
32 9 
44 10 
22 6,7 
27 3,5 
66 4 

[Auftrag nicht wichtig ist]

Dies wird ein wenig wie zuVergleichfür ein Array.

Ich kenne die Längen der einzelnen Listen nicht.

Derzeit verwende ich,

match(n) where exists(n.education_school_id) return n.education_school_id, collect(n.userid) ; 

Doch diese Gruppen die Knoten durch Eigenschaftssätze als Ganzes.

Jede Hilfe wird geschätzt.

Auf eine andere Notiz: Viele meiner Fragen werden seit kurzem downvoted. Wenn jemand einen Downvote machen möchte, dann zögere nicht, dies zu tun, aber lass etwas konstruktive Kritik übrig. Ich versuche, meine Fragen so nah wie möglich an die Regeln der Website zu stellen. Hinterlasse mir Tipps, wo ich trotz all meiner Bemühungen schief gehe.

Antwort

1

Sie möchten die last() Funktion.


ich nicht downvote, aber Sie haben eine Reihe von Fragen, wo die Antwort in einfach in der Dokumentation, wie diese geschrieben. Es ist keine komplexe Frage, du hättest es selbst finden können, es fühlt sich nicht so an, als ob du es versuchst, was bei SO erwartet wird. Da ist das Entwicklerhandbuch, mit dem ich bereits verlinkt habe, es gibt auch die Cypher-Referenzkarte, die eine List Expressions section enthält, in der alles in komprimierter Form vorliegt.

+0

Vielen Dank und Entschuldigung. Um ehrlich zu sein, ich habe die Dokumentation und die Ref-Karte mehrmals durchgelesen. Wusste wahrscheinlich nicht, wonach genau ich suchte, –