【问题标题】:How to find what relations exists between 2 nodes neo4j?如何找到 2 个节点 neo4j 之间存在什么关系?
【发布时间】:2017-05-24 12:34:08
【问题描述】:

假设我有这些关系(A,B) are nodesRs are Relation Names 的节点:

A-R1->B
A-R2->B
A-R3->B

现在我实际上不知道一个或任何R 在这两个节点之间是否有关系。无论知道它是什么关系,我如何指定这两个节点之间是否存在任何关系?

另外,如果这两个节点之间存在任何关系,是否有可能知道它是什么关系?

【问题讨论】:

    标签: neo4j cypher graph-databases neo4jclient


    【解决方案1】:

    我如何指定这两个节点之间是否存在任何关系 不知道是什么关系?

    我相信一个简单的 MATCH 就足够了。以下查询返回名为“A”的节点和名为“B”的节点之间的所有关系(如果存在)。

    MATCH ({name : "A"})-[r]->({name : "B"})
    RETURN r
    

    另外,如果这两个节点之间存在任何关系 能知道是什么关系吗?

    type() 函数返回关系类型的字符串表示形式。然后下面的查询将返回代表A和B之间每个关系类型的字符串。

    MATCH ({name : "A"})-[r]->({name : "B"})
    RETURN type(r) as type
    

    【讨论】:

    • 我主要使用 asp.net 的 neo4jClient 编写密码,我也可以返回 neo4jClient 中的关系类型吗?
    • 我从来没有使用过asp.net的neo4jClient,但我相信你只需调用type()就可以了。从 Web 浏览器界面和客户端库使用 Cypher 之间没有区别。
    • 来自Neo4jClient 你会这样做:IEnumerable<string> results = gc.Cypher .Match("({name: 'A'})<-[r]-({name: 'B'})") .Return(() => Return.As<string>("type(r)")) .Results;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多