【问题标题】:How to get an array of all the nodes linked(related) to a given node (Neo4J + PHP)?如何获取链接(相关)到给定节点(Neo4J + PHP)的所有节点的数组?
【发布时间】:2012-08-17 09:03:10
【问题描述】:

我在 ne04j 中有一个图形数据库,其中节点基于有向关系(知道)相互连接。 A->B A->C A->E 等等

节点根据用户 ID 编制索引,因此我可以找到任何节点。没问题。

问题是如何找到链接到节点 A 的所有节点。我猜这与传出关系有关,但我不知道如何实际实现它。尽管我了解所涉及的图形概念,但我是 neo4j 的新手。我正在使用 Everyman neo4j php graph api。

我是否还需要索引关系以实现我想要做的事情,或者是否可以通过一个函数来获取所有连接的节点?

谢谢!

【问题讨论】:

    标签: php neo4j


    【解决方案1】:

    在 Neo4jPHP 中你可以这样做:

    $node = $client->getNode($nodeId);
    $relationships = $node->getRelationships(array('KNOWS'), 'out');
    $outgoingNodes = array_map(function ($rel) {
        return $rel->getEndNode();
    }, $relationships);
    

    如果您只想检索节点,这比 Cypher 的性能更高。如果您需要进行更复杂的路径匹配,请使用 Cypher。

    更多信息在这里:https://github.com/jadell/neo4jphp/wiki/Nodes-and-Relationships 在“从节点检索关系”部分下

    【讨论】:

    • 正是我需要的。谢谢 :)!
    【解决方案2】:

    问题与您的图形设计无关。实际上,完全没有问题。 密码示例:

    start n=node(123) match n->nodes 返回节点;

    将返回与节点 n 有传入关系的所有节点

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多