2016-07-22 7 views
0

Es tut mir leid für die dumme Frage. Ich habe zwei Arten von Knoten in der neo4j-Datenbank, nämlich Recipes und Meal_Type. Ich führe eine Abfrage in neo4j, die alle Beziehung zwischen den beiden Arten von Knoten ergibt. Die Abfrage ist nicht besonders, es ist die Standardabfrage, die die Beziehung mit einem Limit von 200 Knoten zurückgibt.neo4j - Wie bringt man alle Knoten eines Typs in ein Ergebnis der Beziehungsabfrage?

MATCH()-[r]->() RETURN r LIMIT 200

Es läuft gut. Aber ich brauche, zumindest, alle Meal_Types Knoten im Ergebnis unabhängig vom Rest des Ergebnisses. Im Moment gibt es 3 (manchmal 4,5 bei erneuter Abfrage) von 11 Meal_Types zurück.

Antwort

1

Ich denke, Sie sollten alle Meal_Type Knoten zuerst holen und dann mit diesem Ergebnis eine Reihe von Recipe Knoten abrufen, die damit übereinstimmen.

Hier ist ein Beispiel von dem, worüber ich spreche. Holen Sie sich alle verschiedenen Essensarten, es sei denn, Sie haben bestimmte, an denen Sie interessiert sind. Dann geben Sie bei diesen Essensarten eine Probe des entsprechenden Satzes von Rezepten zurück (200 ~ = 19 * 11).

// match meal types 
match (mt:Meal_Type) 
with mt 
// find a sampling of the the corresponding recipes. 
match (mt)<-[OF_TYPE]-(r:Recipe) 
return mt, collect(r)[0..18] 
+0

'match (mt: Meal_Type) mit mt Spiel (mt)' -> 'match (mt: Meal_Type)' oder sind Ich vermisse etwas? –

0

Wirklich? Ich habe gestern mit Ihrer vorherigen Frage that geantwortet, es ist nur eine Variante.

Dies sollte den Trick tun, um die Beziehungen von Knotenlabel Sortierung:

MATCH (n)-[r]-() 
RETURN r 
ORDER BY head(labels(n))