2016-11-16 10 views
0

ich zwei Fragen haben, die wie unten fast gleich sind (der einzige Unterschied ist die r: vor FOR in Query 1)‚Same‘ Abfragen unterschiedliche Ergebnisse

Query 1: MATCH p=()-[r:FOR]->() RETURN count(p) 
Query 2: MATCH p=()-[FOR]->() RETURN count(p) 

Wenn ich diese Anfragen leite gegen meinen Neo4j Server gibt es ein anderes Ergebnis zurück. Abfrage 1 ist etwa 1/3 oder Abfrage 2, ich denke, es ist wegen Abfrage 1 hat die Ergebnisse 'kombiniert', während Anfrage 2 nicht. (ZB a- [FOR] -> c und b- [FOR] -> c wurden in 1 Datensatz zusammengefasst), aber nur mein Raten. Ich habe versucht, google oder in Neo4j Dokumentation suchen, aber kein Glück. Jeder kann den Unterschied erklären?

Vielen Dank im Voraus.

Antwort

4
MATCH p=()-[r:FOR]->() RETURN count(p) 

Diese Abfrage bindet die FOR Beziehung zu dem r Variable (obwohl es es nicht verwenden).

MATCH p=()-[FOR]->() RETURN count(p) 

Diese Abfrage bindet jede Beziehung (das heißt von jeder Typ) an die variable FOR. Die richtige Syntax zum Angeben des Beziehungstyps in Cypher ist :XXX, mit dem führenden Doppelpunkt. Die richtige Version der zweiten Abfrage wäre tatsächlich:

MATCH p=()-[:FOR]->() RETURN count(p) 
Verwandte Themen