I am new to OrientDB and I want to use the new shortestPath() method to get the edges that are between two vertices.
What I do is:
OSQLSynchQuery<T> sql = new OSQLSynchQuery<T>("select shortestpath(" + firstVertex + ", " + secondVertex + ").asString()");
List<ODocument> execute = db.query(sql);
and what I can only get is [#-2:1{shortestpath:[#8:1, #8:3]} v0]
.
So, I wanted to know how could I extract the edges (well, only one edge in this case, because these two vertices are directly connected) from this output or from the output that I get without asString()
:
[#-2:1{shortestpath:[2]} v0]
Thanks in advance!
OrientDB has collection and map types. To make a collection the result set (what you're interested) you've to flatten it:
To get the edges outgoing edges there are so many ways. Below a few of them:
Or also:
For me, it didn't work how dante or Lvca explained it:
This lead to errors in the console or to no records returned in the OrientDB Studio.
Instead, when I used an alias for the function result, it worked finally. So maybe try out this form:
(Note. I'm using v1.7.4)
Try
You will receive vertices.