0

我正在将 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 有“知道”关系?我试图从文档中找到一些东西,但没有运气。

4

1 回答 1

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
    
于 2014-02-19T23:53:17.693 回答