2014-02-08 65 views
0

我正在用python使用neo4jrestclient。 我想檢查兩個節點是否有特定的關係。neo4jrestclient檢查關係

例如

alice = gdb.nodes.create(name="Alice", age=30) 
bob = gdb.nodes.create(name="Bob", age=25) 
alice.labels.add("Person") 
bob.labels.add("Person") 
alice.relationships.create("Knows", bob) 

我如何檢查是否愛麗絲有「知道」與Bob的關係? 我試圖找到documentation沒有運氣的東西。

回答

1

有很多方法可以做到這一點。我下面展示二:

  1. 使用標準neo4jrestclient的API,這可能不是最有效的:

    bob in [rel.end for rel in alice.relationships.all(types=['Knows'])] 
    

    或者只考慮引出的關係從alice

    bob in [rel.end for rel in alice.relationships.outgoing(types=['Knows'])] 
    
  2. 通過Cypher查詢

    from neo4jrestclient.client import Node 
    cypher = "MATCH (a)-[Knows]-(b) WHERE a.name = 'Alice' AND b.name = 'Bob' RETURN b" 
    gdb.query(query, returns=Node)[0][0] == bob