2016-02-26 104 views
0

給出以下Neo4j Cypher查詢,對於不包含任何包含Item節點的路徑的路徑集合,最佳方法是什麼? itemId等於「Q5」?排除包含給定節點或給定關係的Neo4j Cypher allShortestPaths()的路徑

MATCH p=allShortestPaths((a:Item {itemId:"Q6294"})-[*]-(b:Item {itemId:"Q359442"})) 
RETURN p; 

此外,什麼是最好的方式,給出了上面的查詢,對路徑返回的集合不包含包含其PROPID等於「P31」的關係的任何路徑?

謝謝, 詹姆斯·韋弗

回答

3
  1. 的路徑返回的集合不包含包含其的itemId等於「Q5」型的項目節點的任何路徑:

    MATCH p=allShortestPaths((a:Item {itemId:"Q6294"})-[*]-(b:Item {itemId:"Q359442"})) 
    WHERE NONE(x IN NODES(p) WHERE x:Item AND x.itemId = "Q5") 
    RETURN p; 
    
  2. 返回路徑集合不包含任何包含propId等於「P31」的關係的路徑:

    MATCH p=allShortestPaths((a:Item {itemId:"Q6294"})-[*]-(b:Item {itemId:"Q359442"})) 
    WHERE NONE(x IN RELATIONSHIPS(p) WHERE x.propId = "P31") 
    RETURN p; 
    
+0

完美!感謝cybersam! –

相關問題