首先,您的查詢得不到結果的原因是因爲where type(r)="Hadoop" and type(r)="hive"
表示您正在查找r.type =「Hadoop」和「hive」的r實例。由於r.type在任何時候只能有一個值,所以它不可能同時等於Hadoop和Hive;所以聲明可以邏輯上簡化爲「虛假」或基本上放棄所有匹配。
如果你正在尋找要麼關係的所有節點,比Satish Shinde's answer是指定它
match (n)-[:Hadoop|hive]-()
return n,count(n);
或者以正確的方式,用方向
match (n)-[:Hadoop|hive]->()
return n,count(n);
如果你需要同時在場,比你需要匹配兩個單獨的關係邊緣如下
match()-[:hive]-(n)-[:Hadoop]-()
return n,count(n);
或者與方向
match()<-[:hive]-(n)-[:Hadoop]->()
return n,count(n);
以及物品是否完整,如果你想檢查這兩個在那裏存在着密切的,你可以使用remigio's answer
start n=node(*) match()-[r2]-(n)-[r1]-() where type(r1)="Hadoop" and type(r2)="hive" return n,count(n);