根据关系属性neo4j进行排序

3

使用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个回答

5

如果你喜欢它,就把它锁定:也就是将其绑定到一个变量上。然后,你可以像使用节点属性一样使用ORDER BY。如果你已经检索到了程序(program1),那么你可以做如下操作:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接