Ich bin neu sowohl in ArangoDB als auch in der graphbasierten Traversalabfrage.Wie konstruiere (projiziere) ich ein RETURN-Objekt in ArangoDB basierend auf den während der Graphtraversierung besuchten Scheitelpunkten
Hier ist wie mein Diagramm derzeit strukturiert ist. Jeder Knoten hat mindestens ein Attribut (Schlüssel/Wert-Paar). Sie können sich vorstellen, dass es einen Abhängigkeitsbaum gibt. Jeder Elternknoten (mit seinen eigenen Eigenschaften) ist abhängig von einem Kindknoten (wiederum mit eigenen Eigenschaften). Es gibt keine Vererbungsbeziehung von Eltern zu Kind.
Lets für dieses Beispiel sagen:
vertex1 hat {key1: value1}
Vertex2 hat {key2: Wert2, key3: value3}
vertex3 hat {Schlüssel4: Wert4}
Vertex4 hat {key5: value5}
Ich habe die Grund Graph Traversal von der Dokumentation heraus aber ich das zurückgebrachte Objektstruktur eine spezifische Anforderung Strukturierung haben auf der Grundlage der Eckpunkte vorhanden (besuchten) ausgehend von Vertex1 bis zum MaxDepth.
RETURN-Objekt muss die folgende Struktur haben: Wie Sie sehen können, wenn die Scheitelpunkttiefe zunimmt, wird das Objekt unter dem übergeordneten Knoten verschachtelt.
{
vertex1: {
key1:value1
vertex2: {
key2:value2,
key3:value3,
vertex3: {
key4:value4
}
}
vertex4: {
key5:value5
}
}
}
ich Sie nicht fragen kann die Abfrage für mich zu schreiben, aber jede Hilfe dankbar ist viel und ich in der richtigen Richtung gesetzt würde.
Basierend auf meinem aktuellen Verständnis:
FOR v IN 1..2 OUTBOUND 'vertex1' GRAPH 'grapgName'
//I'm guessing I would have to COLLECT and GROUP
//on the existing vertex to projected object structure.
//I just don't know how :(
RETURN returnObj
Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen
Jetzt, wo ich daran denke .. ist es sogar möglich, das obige Ergebnis mit einer einzigen Abfrage zu erreichen .. Unterstützt aql Rekursion? Wenn nicht, ist es sinnvoll, im foxx-Service eine Rekursionslogik hinzuzufügen? – Pramodh
Meiner Meinung nach macht es Sinn, die Rekursion in einem Foxx-Dienst zu implementieren. – fceller