我如何使用Neography找到给定节点的关系类型和节点



我一直在尝试将Neography用于以下基本用例,但似乎无法使其起作用:

  1. 对于给定节点,请告诉我该节点的所有相关关系。
  2. 对于给定的节点和特定关系,返回该关系中的节点或节点?

我遵循了此处的示例:https://maxdemarzi.com/2012/01/04/getting-with-with-with-ruby-and-neo4j/

我尝试了以下代码:

def create_person(name)
  Neography::Node.create("name" => name)
end
johnathan = create_person('Johnathan')
mark      = create_person('Mark')
phil      = create_person('Phil')
mary      = create_person('Mary')
luke      = create_person('Luke')
johnathan.both(:friends) << mark

首先,我想看看正在传入的关联关系。我的期望是看到与:friends类型的关系:

johnathan.incoming
 => #<Neography::NodeTraverser:0x0000000133f1c0 @from=#<Neography::Node name="Johnathan">, @order="depth first", @uniqueness="none", @relationships=[{"type"=>"", "direction"=>"in"}]> 

我尝试了relationships

2.2.1 :060 > johnathan.incoming.relationships
 => [{"type"=>"", "direction"=>"in"}] 

我的期望是看到 "type"=>":friends",但我没有。

但是,当我尝试以下操作时,我会做,但这对我的用例不起作用,因为我想知道没有事先知道它们的关系是什么:

2.2.1 :061 > johnathan.incoming(:friends).relationships
 => [{"type"=>"friends", "direction"=>"in"}] 

第二例用例是实际检索可以工作的节点。

问题:如何获得与给定节点相关的关系类型?

我想我几乎要弄清楚了:

johnathan.rels.map{|n| n}.first.rel_type
 => "friends"

你是对的,几乎在那里。该文档的文档位于https://github.com/maxdemarzi/neogement/wiki/wiki/phase-2-node-relationships#retrieval-by-type,但基本上是:

n1 = johnathan
n1.rels                            # Get node relationships
n1.rels(:friends)                  # Get friends relationships
n1.rels(:friends).outgoing         # Get outgoing friends relationships
n1.rels(:friends).incoming         # Get incoming friends relationships
n1.rels(:friends, :work)           # Get friends and work relationships
n1.rels(:friends, :work).outgoing  # Get outgoing friends and work relationships

据我所知,没有办法获得与我有关的所有关系类型,但这将是Neo4J Rest API的一个很好的改进。

功能存在于Java API中,请参见https://neo4j.com/docs/java-referent/current/current/javadocs/org/org/neo4j/graphdb/node.html#getrelationshiprelations-higrelationshiptypes-->

相关内容

  • 没有找到相关文章

最新更新