【问题标题】:Order by relationship properties neo4j按关系属性排序 neo4j
【发布时间】:2013-10-14 11:16:33
【问题描述】:

使用 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 与节点属性一起使用,但在关系方面并不成功(我的生活故事......)

【问题讨论】:

    标签: neo4j sql-order-by


    【解决方案1】:

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

    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
    

    【讨论】:

      【解决方案2】:

      如果你喜欢它,就把它锁起来:也就是说,把它绑定到一个变量上。然后您可以像使用节点属性一样使用ORDER BY。如果您已将程序检索为(program1),您可以执行类似的操作

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

      【讨论】:

        猜你喜欢
        • 2018-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多