使用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和节点属性,但是没有成功的关系(我的生活故事......)
答案 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