根据关系属性对节点进行排序/过滤

时间:2012-02-13 13:48:48

标签: neo4j gremlin

给出以下图表:

enter image description here

  1. 如何使用node[5]
  2. 获取与weight > 50相邻的节点
  3. 如何按标题node[5]获取与"knows"相邻的节点,按重量排序?

2 个答案:

答案 0 :(得分:12)

不确定Gremlin,但在Cypher中它是:

1

START s=node(5) MATCH s-[r]-f WHERE r.weight > 50 RETURN f

2:

START s=node(5) MATCH s-[r:knows]-f RETURN f ORDER BY r.weight

如果您关心关系的方向,请在关系上加上箭头,例如“s - [] - > f”或“s< - [] - f”

答案 1 :(得分:10)

  1. 如何获得与节点[5]链接的节点,其边缘标签为“knows”且权重为> 50?

    g.v(5).outE('knows')。filter {it.weight> 50} .inV

  2. 根据关系/边缘方向,它可能是“inE”而不是outE或“both”步骤,那么您将需要调整查询,因为您将在另一个方向上有边缘或两个方向上的边缘...... < / p>

    1. 如何获取与节点[5]相关的节点,标签为“knows”,按重量排序?

      g.v(5).outE('knows')。filter {it.weight&gt; 50} .sort {a,b - &gt; a.weight&lt; =&gt; b.weight} .toList()._。INV