I think I found out how to do that:
select from (
traverse out_permissions, in from A while ((@class = 'permission' AND r =
true) OR @class <> 'permission')
) where @class <> 'permission'
The idea is to traverse both verticies and edges. Then check r property
only on edge. And finally selecting only verticies.
Dne neděle 4. října 2015 12:17:45 UTC+2 Sung Eun Choi napsal(a):
>
> Suppose we have a graph arranged like this:
>
> permissions { permissions {
> r: true, r: true,
> +-----+ w: true +-----+ w: false +-----+
> | | } | | } | |
> | A +-----------------> B +---------------> C |
> | | | | | |
> +-----+ +-----+ +-----+
>
> Note: We can consider a graph with multiple vertices that are connected by
> similar edges.
> Note: The "permissions" is an edge with boolean fields "r" and "w".
>
> What would be the query if I wanted to traverse starting from A to all
> vertices that are connected by permissions edge with field r=true?
>
> The query to traverse through all permissions edges would be
> TRAVERSE OUT('permissions') FROM A
>
> However, I am looking for something to the effect of
> TRAVERSE OUT('permissions (with r=true)') FROM A
> ->[returns A, B, C]
>
> TRAVERSE OUT('permissions (with w=true)') FROM A
> ->[returns A, B]
>
>
> Thanks in advance
>
--
---
You received this message because you are subscribed to the Google Groups
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.