2016-04-04 21 views
0

İnsanlardan ve projelerden oluşan basit bir grafik veritabanına sahibim. Tek ilişki, hangi projelerde çalıştı. Proje ortakları arasında insanlar arasındaki ilişkiyi nasıl bulabilirim ve grafiğini çizebilirim?Neo4j içinde grafik iş ortakları oluşturma

İşbirliği için bağlantı çizgileriyle sadece insanların grafikleriyle sonuçlanmayı umuyoruz.

ben bu sorguyu çalıştı, ancak yalnızca düğümleri değil, ilişkileri döndürür: Sen ilişkisi için bir değişken eklemek ve bunu iade etmek gerek

MATCH (valjean:person {person_id: "24601"})-[:WORKED_ON]->(project)<-[:WORKED_ON]-(collaborators) 
RETURN valjean, collaborators; 

cevap

0

- şöyle:

MATCH (valjean:person {person_id: "24601"})-[r1:WORKED_ON]->(project)<-[r2:WORKED_ON]-(collaborators) 
RETURN valjean, r1, r2, collaborators; 

I ilişkileri ve düğümleri bildirmek için "r1" ve "r2" ekledi. Burada, "film" örneği kullanarak

MATCH (valjean:person {person_id: "24601"})-[r1:WORKED_ON]->(project) 
MATCH (collaborators:person)-[r2:WORKED_ON]->(project) 
RETURN valjean, r1, r2, collaborators; 

Halle Berry dışında bir film projesinin parçasıydı herkesi şu şekilde bulabilirsiniz: Burada

aynı şeyi yapmak için başka bir yolu

match (p1:Person {name: "Halle Berry"})-[r]-(m:Movie {title: "Cloud Atlas"}) 
match (m)-[p]-(p2:Person) 
where p1 <> p2 
return m, p, p2 

Amaç, sonucu "rapor" biçiminde elde etmekse, bu size aradığınız şeyi verecektir - size bir grafik vermeyecektir.

match (p1:Person {name: "Halle Berry"})-[r]-(m:Movie {title: "Cloud Atlas"}) 
match (m)-[p]-(p2:Person) 
where p1 <> p2 
return p1, "WORKED_WITH", p2 
+0

Bu çok yakın, ancak yine de proje düğümlerini gösterir. Sadece insanları ve onların miras kalan ilişkilerini göstermenin bir yolu var mı? – Rachie

+0

"Devralınan ilişkilerin" ne anlama geldiğinden emin değilim. Eğer detaylandırırsan sana bir öneri verebilirdim. –

+0

Sadece insanları göstermek ve birlikte çalıştıkları projelere dayanan ilişkiler kurmak istiyorum. Temel olarak, “WORKED_WITH” ilişkisi “WORKED_ON” ilişkilerinden türetilmiştir. – Rachie