按关系属性neo4j排序

时间:2013-10-07 18:51:17

标签: neo4j sql-order-by

使用Neo4j 1.9.3 -

我想创建一个音乐节目列表。在给定的程序上,可能有三个部分正在执行。每个作品都有一个与之相关的作曲家,并且可能出现在许多不同的节目中,所以我不能将序列号放在片段节点上。

我假设我可以创建程序,与每个部分的关系如下:

(program1)-[:PROGRAM_PIECE {program_seq: 1}]->(piece1)
(program1)-[:PROGRAM_PIECE {program_seq: 2}]->(piece2)
(program1)-[:PROGRAM_PIECE {program_seq: 3}]->(piece3)

我的问题是,如何查询图表以使这些部分按照关系属性program_seq的顺序排列?我很好地使用ORDER BY和节点属性,但是没有成功的关系(我的生活故事......)

2 个答案:

答案 0 :(得分:3)

如果您喜欢它,请将其锁定:即将其绑定到变量。然后,您可以像使用节点属性一样使用ORDER BY。如果您已将程序检索为(program1),则可以执行类似

的操作
MATCH (program1)-[r:PROGRAM_PIECE]->(piece1)
  RETURN program1, r, piece1
  ORDER BY r.program_seq

答案 1 :(得分:0)

我最近做了同样的事情来跟踪特定游戏中的国际象棋动作。它与节点属性是一样的。

start program = node(*) // or better yet, use a real index query to find the program
match (program)-[program_piece:PROGRAM_PIECE]->(piece)
return program, piece
order by program_piece.program_seq