2014-01-10 35 views
0

Neo4j圖數據庫中,我需要獲取所有不同的節點屬性。如何獲取所有不同的neo4j節點

例如: 格拉夫數據庫具有兩種類型的節點Student{firstName,lastName}School{name,size}的。它有100所學校和1000名學生。

現在我想這些細節:

Student{firstName,lastName} 
School{name,size} 

我使用的Neo4j的Java API。請幫幫我。

回答

1

你的問題很模糊,無論如何,我會給它一個鏡頭。我使用Cypher(我從來不使用Java API),也許你可以使用這個概念在neo4j Java API中解決它。

MATCH (n: Student), (m:School) 
RETURN n,m 

MATCH (n: Student), (m:School) 
RETURN n.firstname as 'First Name', n.lastname as 'Last Name', m.name as 'School Name', m.size as 'Size' 
+0

感謝@Olufemi Adeyemi,但我想從一個名不見經傳的圖形數據庫,學校獲得這些細節,學生給了我它是一個例子。我們不確定哪些數據在那裏。 –

+0

如果你想返回db中的所有節點,你可以使用: MATCH p =(n) - >(m) RETURN extract(j IN nodes(p))as \'Nodes \'。 獲取詳細信息後,您現在可以優化您的查詢以適合您的特定需求 – osa

+0

好的,將試一試謝謝。 –

1

從Cypher支架

MATCH (n) 
RETURN n 

核心Java API

for (Node n : GlobalGraphOperations.at(gdb).getAllNodes()) { 
    for (String prop: n.getPropertyKeys()) { 
     System.out.println(n.getProperty(prop)); 
    } 
    for (Label l : n.getLabels()) { 
     System.out.println(l); 
    } 
} 

如果你只是想看看每個標籤的屬性,而不是值對於所有的節點,我會去這個:

match (n:School) return n limit 1; 
match (n:Student) return n limit 1; 

不幸的是,還沒有一個模式信息聲明每個標籤有哪些屬性可用。

您可以使用此雖然獲得所有物業類型的圖表:

GlobalGraphOperations.at(graphDb).getAllPropertyKeys() 
+0

感謝@Michael Hunger,遍歷所有節點,如果我擁有數百萬個節點,那麼這不會是性能問題。我已經準確地編碼,但思考是否有任何問題。 –

+0

我認爲這就是你想要做的,遍歷所有節點並查找每個節點的屬性和標籤 –

+0

是@Michael Hunger,但如果我們遍歷數百萬行,int會成爲性能問題,謝謝。 –

相關問題