Ich bin nur mit arangodb und bekommen haben, um mein erstes echtes Problem Einstieg:arangodb Knoten mit mehreren anderen verbunden
Ist es möglich, Knoten zu suchen, die alle mehrere andere verbunden? Dies scheint eine grundlegende Operation für eine Graph-DB zu sein, aber ich kann mir einfach keine Lösung vorstellen.
Für Referenz, wenn wir das nehmen ‚weiß‘ Beispiel Graph Ich möchte wissen, welche Personen wissen, Charlie und Dave (die nur Bob sein sollte)
knows example graph (keine Bilder noch einzubetten erlaubt)
Für jetzt ist meine beste Schätzung, eine Durchquerung für alle "Ziele" zu beginnen und die Antwort selbst zu reduzieren und zu filtern, ist das wirklich der einzige Weg?
EDIT: OK, weiter zu spezifizieren ich eine andere Verbindung hinzugefügt haben, Vorabend dave weiß auch, aber sollte nicht zurückgegeben werden, da sie nicht charlie weiß
EDIT2: Bisher habe ich mit diesem kommen
AbfrageFOR start IN ['persons/charlie', 'persons/dave']
LET knownBy = (FOR v,e,p IN 1 INBOUND start knows
RETURN v)
FOR p IN knownBy
COLLECT person = p
LET knows = (FOR v IN 1 OUTBOUND person._id knows
RETURN v._id)
FILTER knows ALL IN ['persons/charlie', 'persons/dave']
RETURN person
dies ist jedoch ein bisschen unnatürlich anfühlt, immer die von ‚X‘ bekannt Personen, die Personen zu erhalten, die ‚X‘ ... auch weiß, zeigt der Profiler, dass etwa ein Drittel der Zeit verwendet wird, Um den Plan zu optimieren, muss es eine bessere Lösung geben, oder?