I am new to Arango and I am trying to understand the 'right' way to write some queries. I read (https://www.arangodb.com/docs/stable/graphs-traversals-using-traversal-objects.html) and (http://jsteemann.github.io/blog/2015/01/28/using-custom-visitors-in-aql-graph-traversals/), since they always popped up when searching for what I am trying to do. In particular, I have a graph where a given node has a single path (via a certain 'type' of edge) from that node to a leaf. Something like x -a-> y -a-> z. Where a is the edge type, and x,y,z are the nodes. These paths can be of arbitrary length. I would like to write an AQL query that returns the single 'longest' path from the starting node to the leaf node. I find that I always get every sub-path and would then have to do some post-processing. The traversal objects looked like they supplied a solution to this issue, but it seems they are now deprecated. Is there a correct way to do this in AQL? Is there a document that shows how to do what steemann does in his article, but only using AQL? Is there some great AQL documentation on graph queries other than what is on the arangodb site (all of which I have already read, including the graph presentation and the udemy course)? If not, I would be happy to write something to share with the community, but I am not sure yet how to do this myself, so I'd need some pointers to material that can get me started. Long, short, I'd just like to know how to run my query to find the path from node to leaf. However, I'd be happy to contribute once I see how things should be done without traversal-objects. Thank you for your help
1
There are 1 best solutions below
Related Questions in ARANGODB
- ConcurrentModificationException happen for findAllById in arangodb-spring-data with concurrent workers
- How to exclude a weaved property from an entity in Spring Data?
- How to Pass-in a Collection name and Document Key to an AQL query to update the document
- Convert ArangoDB query to MongoDB query
- How can I connect to a local ArangoDB database from an Appsmith Javascript Object from Windows 10
- ArangoDB waits infinitely after issuing start command by arangodb
- ArangoDB AQL Upsert Operation Clears CreateDate on Update Instead of Only on Insert
- ArangoDB prompts to enter the root password despite the authentication is disabled in the command line
- In ArangoDB AQL is there anything like mysqli_real_escape_string?
- AQL query takes 30+ seconds
- ArangoDB and ldap
- Getting error "expecting POST /_api/cursor" from ArangoDB.js
- ArangoDb: Is it possible to determine the direction of the current path?
- Is it possible to insert only if query returns no results
- ArangoDB on K8S: thousands of Open FD filedescriptors
Related Questions in AQL
- How to Pass-in a Collection name and Document Key to an AQL query to update the document
- Is it allowable to use different AQL sampling plan/level for large lot size
- In ArangoDB AQL is there anything like mysqli_real_escape_string?
- AQL query takes 30+ seconds
- ArangoDb: Is it possible to determine the direction of the current path?
- Add count of group that does not exist for the row
- GEO_DISTANCE search in view returns nothing, even though ANALYZER returns true
- Confusion on `IN` and `==` in ANALYZER(), and fulltext search question
- Passing variable value in items.find query using python
- How to generate ArangoDB queries mechanically?
- How do you find documents that do not match across 2 collections in ArangoDB?
- Vertex centric index not used by Arango
- I am new to aragodb and currently exploring on graphs basically, So is there a multiple ways to create graphs in arango, Any help is appreciated
- Number of related users to projects in ArangoDB
- I need to implement a fuzzy string search with Spring + ArangoDB
Related Questions in GRAPH-TRAVERSAL
- Approximation Algorithms for the Longest Simple Path in a Directed Graph
- leetCode590. N-ary Tree Postorder Traversal
- ArangoDB Graph Traversal: Excluding a Node Based on Property While Inferring Indirect Connections
- Python IDDFS missing potential results
- Path finding in grid
- How to detect any cycles in lisp list
- Traverse directed graph without "catching up"
- Retrieving distinct data without using the DISTINCT keyword for better query performance
- Patterns for defining non-persistent entity relationships to traverse via business logic?
- Exponential time complexity during traversal
- Can you give me adjacency list of a graph whose BFS and topological sort are not equivalent?
- ArcadeDB | `All hosts are considered unavailable due to previous exceptions. Check the error log to find the actual reason.`
- Is There A Better Way To Delete Vertexes In JanusGraph?
- Why is it slow when OpenMP runs in parallel independent instances of shortest path algorithm that uses BFS (BFS in itself is not parallelized)?
- Connect to External JanusGraph Server With JanusGraphFactory
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Taking a traversal in
OUTBOUNDdirection as example, you can do a second traversal with depth = 1 to check if you reached a leaf node (no more incoming edges). Based on this information, the “short” paths can be filtered out.Note that a second condition is required: it is possible that the last node in a traversal is not a leaf node if the maximum traversal depth is exceeded. Thus, you need to also let paths through, which contain as many edges as hops you do in the traversal (here: 5).
Cross-post from https://groups.google.com/g/arangodb/c/VAo_i_1UHbo/m/ByIUTqIfBAAJ