2014-02-08 39 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