2016-02-26 101 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! –

相关问题