Hier ist der Beginn meiner Abfrage.Neo4j/Cypher: Sortierergebnisse basierend auf einer sortierten Sammlung
MATCH (person:Person)<-[:NAMES]-(name:PersonName)-[:COMES_FROM]->(source:Source)
WITH DISTINCT person, COLLECT([name, source]) AS tuples
WITH person, REDUCE(result=[], tuple in tuples |
... ) AS personName
ORDER BY personName.lastName
RETURN person
Hier ist der Haken: Jede Person hat eine Reihe von Namen, die jeweils aus 1 von 5 Quellen stammen. Aber nicht alle Quellen sind gleich. Ich möchte den Namen bekommen, der von der besten Quelle kommt, wenn das nicht verfügbar ist, dann der nächstbeste usw. ["source.best", "source.very-good", "source.ok", "source.worst"] Ich möchte so etwas wie eine benutzerdefinierte Sortierung für die personName-Auflistung mit den Quellen als Prädikat durchführen und zurückgeben der erste. Es wäre einfacher, wenn die Quellen Zahlen wären oder so.
Irgendwelche Vorschläge?
vom Chef geschlagen :) –