Hierarchical modeling and queries

19 views
Skip to first unread message

Kieran Sweeney

unread,
May 20, 2019, 2:33:24 AM5/20/19
to ArangoDB
Greetings.

I have a hierarchical graph with a sequential series at a certain level with vertices for each level, and edge collections between each level:
E: edge, V: vertices, L: level, A,B,C : distinct record at each level, edge collections L1-L2 and L2-L3 and L3-L3 (for the sequence).

VL1A -> VL2A->VL3A->VL3B->VL3C...

If I query for edges E(VL1A-VL2A) and E(VL2A-VL3A) returning path P, I see exactly the graphic I want (VL1A...VL3C) in the ArangoDb web interface, but when I toggle to JSON the JSON returns 4 additional paths representing each subset along the way (VL1A.-VL2A), (VL1A.-VL2A-VL3A), etc. I only want the last JSON record set.

How can I remove these sub-paths? Or in essence return the LONGEST_PATH for L3, or force the query to the end of the sequential chain, i.e. to VL3C? The length of the sequential level L3 varies. I also have modeled an edge between L2-L3 for all the L3 records, but effectively exclude these by filtering on edge VL2A-VL3A in the query.

I don't expect the sequence at L3 to be large, but am limited by the min...max level set in the query even though technically my graph is only 3 edges deep. 

I get the same result regardless using a named graph or unnamed graph, using the unique vertices or edges options, etc.

for v, e, p in 0..100
    outbound
    'L1A'
    graph 'GraphL1L2L3'
    // options {uniqueEdges:'path'} [etc..]
    filter p.edges[1]._key=='L2A-L3A' //to force the graph through the sequence at L3 that I want to return.
    return p

Thank you in advance for your consideration.
Reply all
Reply to author
Forward
0 new messages