neo4jrestclient检查关系

时间:2014-02-08 14:17:19

标签: neo4j neo4jrestclient

我正在使用neo4jrestclient和python。 我想检查两个节点是否有特定的关系。

例如

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)

如何检查Alice是否与Bob有“知情”关系? 我试图从documentation找到一些没有运气的东西。

1 个答案:

答案 0 :(得分: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