2013-10-07 5 views
1

Utilisation de Neo4j 1.9.3 -Classement par propriétés de propriétés neo4j

Je souhaite créer une liste de programmes musicaux. Sur un programme donné, trois pièces peuvent être exécutées. Chaque pièce est associée à un compositeur et peut apparaître sur de nombreux programmes différents, donc je ne peux pas mettre de numéros de séquence sur les nœuds pièce.

Je suppose que je peux créer le programme, les relations à chaque pièce comme tel:

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

Ma question est, comment puis-je interroger les graphique pour lister les pièces dans le bon ordre en utilisant la propriété de la relation « program_seq "? J'utilise ORDER BY avec des propriétés de nœud, mais je n'ai pas réussi avec les relations (histoire de ma vie ...)

Répondre

2

Si vous l'aimez, verrouillez-le: c'est-à-dire, liez-le à une variable. Vous pouvez ensuite utiliser ORDER BY comme vous le feriez pour les propriétés de noeud. Si vous avez récupéré votre programme en tant que (program1) vous pouvez faire quelque chose comme

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

J'ai fait la même chose récemment pour suivre les mouvements d'échecs dans un jeu en particulier. C'est la même chose que les propriétés du nœud.

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 
Questions connexes