count()
ist eine Aggregatfunktion. Wenn Sie eine Aggregatfunktion verwenden, werden Ergebniszeilen nach dem gruppiert, was in der RETURN-Klausel enthalten ist, und nicht eine Aggregatfunktion. In diesem Fall werden Ergebniszeilen nach gruppiert und der Rückgabewert wird gezählt (Knoten (p)).
nodes(p)
kehrt ein Array von Knoten, so wird die Anzahl der count(nodes(p))
Arrays zurück und wird 1
immer gleich.
Um die Anzahl der Knoten im Pfad zurückzugeben, sollten Sie size(nodes(p))
verwenden.
Wenn Sie nur Interesse an der Länge eines Pfades ist und nicht besonders in den Knoten, die darin enthalten sind, würde ich empfehlen Sie length(p)
zu verwenden. Dadurch wird die Länge in rels für einen bestimmten Pfad zurückgegeben, ohne die Knoten bearbeiten/zugreifen zu müssen.
"Länge in Rels" ist eine wichtige Qualifikation - es stolperte mich ständig, dass die Länge in rels ist, es ist * nicht * die Anzahl der Knoten im Pfad, die immer eine mehr ist. – FrobberOfBits
Das macht Sinn, danke für die Klärung. – wiktus239
Sie sagen 'Ergebniszeilen werden nach dem gruppiert, was in der RETURN-Klausel enthalten ist', aber dann sagen Sie' In diesem Fall werden die Ergebniszeilen nach p gruppiert. Du widersprichst dir selbst – TheLogicGuy