2015-03-19 26 views
5

'da nasıl çalışır Bunun nasıl çalıştığına ilişkin bir açıklama arıyorum ve neden bir yoldaki düğüm sayısını döndürmüyor. Bir yolla eşleştiğimi varsayalım p. Şimdi:Sayım (düğümler (p)) Cypher, Neo4j

WITH p, count(nodes(p)) AS L1 RETURN L1 

döner

bu açıktır 1., nasıl yollar düzgün düğümleri sayabilirim?

cevap

5

count(), toplam işlevidir. Herhangi bir toplama işlevini kullanırken, sonuç satırları, RETURN deyimine ve değil, bir toplama işlevine dahil edilenler tarafından gruplandırılır. Bu durumda, sonuç satırları p tarafından gruplandırılacak ve dönüş değeri (düğümler (p)) sayılacaktır.

nodes(p) döner düğüm dizisi, yani count(nodes(p)) dizilerin sayısını döner ve her zaman eşit 1 olacaktır.

Yoldaki düğüm sayısını size(nodes(p)) kullanmanız gerekir.

bir yolun uzunluğu sadece ilgilendiğiniz değil özellikle bulunacağına nodlarında, ben length(p) kullanmaya teşvik edecek olursa. Bu, düğümleri manipüle etmeden/erişmeye gerek kalmadan belirli bir yol için rels cinsinden uzunluğu döndürecektir.

+1

"Rels cinsinden uzunluk" önemli bir kalifikasyondur - bu, sürekli olarak, uzunlukların uzunluğu, rels cinsinden uzunluğa kadar sürmek için kullanılır, yoldaki düğüm sayısıdır, ki bu her zaman birdir. – FrobberOfBits

+0

Bu mantıklı, bunu temizlemek için teşekkürler. – wiktus239

+0

"Sonuç satırları, RETURN deyimine dahil edilenler tarafından gruplandırılacak" derken, "Bu durumda, sonuç satırları p" ile gruplandırılacaktır. Kendinle çelişiyorsun – TheLogicGuy