2012-04-01 8 views
2

Was ist der direkteste Weg, um alle Knoten, die eine gemeinsame bidirektionale Kante mit einem bestimmten Knoten mit Gremlin teilen? Zum Beispiel möchte ich alle Benutzer finden, denen ich folge, die auch mir folgen. Wenn ich ihnen folge und sie mir folgen, dann müssen wir Freunde sein. Ansonsten ist die Beziehung ein Weg.Wie finde ich heraus, wer mir auch folgt mit Gremlin

Die Antwort könnte zu offensichtlich für mich zu sehen sein. Ich habe mit dieser kommen, aber es scheint komplizierter als nötig:

me=g.v(_id); me.out('follows').as("following").out('follows').filter{it == me}.back("following") 

Antwort

4

Die Lösung lautet:

me.out('follows').out('follows').retain([me]).back(2) 

Dies sagt:

  1. Beginnen Sie mit mir.
  2. Finde heraus, wem ich folge.
  3. Finde heraus, wem sie folgen.
  4. Töte Pfade, die nicht zu mir zurückführen.
  5. Geh zurück zu jenen Leuten, die mir folgen. (Das sind auch die Leute, denen ich folge).
Verwandte Themen