Ich bin relativ neu zu Neo4j, also entschuldige ich mich, wenn es eine offensichtliche Antwort auf diese Frage gibt. Ich habe eine Datenbank mit Benutzerknoten, Account-Knoten und ASSIGNED_TO-Beziehungen zwischen ihnen. Ich habe eine Abfrage (unten), um die Benutzer und die zugewiesenen Konten zu erhalten, aber ich möchte auch eine Anzahl der Benutzer erhalten, die in derselben Abfrage gefunden wurden, unabhängig vom LIMIT/SKIP-Ergebnis. Was scheinbar geschieht, ist, dass die Benutzeranzahl auf dem OPTIONAL MATCH-Ergebnis basiert, nicht auf dem Ergebnis der MATCH-Abfrage.Neo4j Get Nodes und Node Anzahl gleichzeitig
Ich habe 3 Benutzer und 3 Konten in der Datenbank mit 2 Benutzern, die 2 Konten zugewiesen sind und einem Benutzer, der nur einem Konto zugewiesen ist.
Dies ist die Abfrage:
MATCH (user:User) WITH user OPTIONAL MATCH (user)-[assigned:ASSIGNED_TO]-(account:Account) RETURN user, count(user) as userCount, collect(account) as accounts SKIP 0 LIMIT 25
Dies ist das Ergebnis:
user userCount accounts {id: 2} 1 [{id: 2}] {id: 1} 2 [{id: 2}, {id: 1}] {id: 3} 2 [{id: 1}, {id: 3}]
ich der Usercount Wert will 3 für alle Zeilen sein. Wenn ich 'count (user)' in 'count (DISTINCT user)' ändere, bekomme ich 1 für userCount. Ich möchte vermeiden, 2 getrennte Abfragen wenn möglich auszuführen.
perfekte Trick! Genau das, was ich brauchte. Vielen Dank. – Jason
Sehr ineffektiv - sehen Sie sich die Abfrage im Profiler an. –