Hi!
I'm using OrientDB *v.2.1.1* with *useLightweightEdges *property set to 
true.
I have a question on fetch plans. I'm not sure if I'm not using it well, 
but I'm not getting the result I was looking for.

The structure of the database classes in the example is:

*User*    V     #13
*Event*   V     #14
*Org*     V     #15
*Media*   V     #16

*admin   *E     *User  --> Org*
*fol**low  *E     *User  --> Org*
*aut**hor  *E     *Event --> Org*
*ava**tar  *E     *Org   --> Media*
*thumb   *E     *Event --> Media*



I need to write a query that fetches a specific Event, its relative thumb, 
author and the author's avatar. Nothing else.
So this is what I wrote in the beginning:

SELECT @this.toJSON('rid,class,fetchPlan:[*]in_*:-2 [*]out_*:-2 out_thumb:0 
out_author:0 out_author.out_avatar:0') FROM Event WHERE @rid = #14:8


With *[*]in_*:-2 [*]out_*:-2* I thought I'd exclude any edge and with the 
rest of the parameters I specify what I need.
But while this works for the level 0, it doesn't seem to work for the other 
levels: out_author and out_thumb have listed all the other properties too.

{
    "@rid": "#14:8",
    "@class": "Event",
    "name": "EVENT_TEST",
    "out_author": [
        {
            "@rid": "#15:0",
            "@class": "Org",
            "name": "ORG_TEST",
            *"in_admin": [ "#13:0", "#13:5", "#13:6", "#13:9", "#13:10", 
"#13:13", ... ],*
            *"in_follow": [ "#13:0", "#13:4", "#13:5", "#13:6", "#13:14", 
"#13:15", ... ],*
            *"in_author": [ "#14:6", "#14:7", "#14:8", "#14:9", "#14:10", 
"#14:11" ... ]*
            "out_avatar": [
                {
                    "@rid": "#16:2",
                    "@class": "Media",
                    "url": "www.image.com"
                    *"in_thumb": [ "#14:4", "#14:6", "#14:7", "#14:12", 
"#14:14", "#14:15", ... ],*
                    *"in_avatar": [ "#15:0" ]*
                }
            ]
        }
    ],
    "out_thumb": [
        {
            "@rid": "#16:1",
            "@class": "Media",
            "url": "www.image.com"
            *"in_thumb": [ "#14:2", "#14:5", "#14:8", "#14:9", "#14:10", 
"#14:13", ... ],*
            *"in_avatar": [ "#15:2" ]*
        }
    ]
}




So I tried to add some more parameters to remove the properties I don't 
want:

*[*]in_avatar:-2   [*]in_thumb:-2   [*]in_author:-2   [*]in_admin:-2   
[*]in_follow:-2*

So the query became like this:

SELECT @this.toJSON('rid,class,fetchPlan:[*]in_*:-2 [*]out_*:-2 out_thumb:0 
out_author:0 out_author.out_avatar:0 [*]in_avatar:-2 [*]in_thumb:-2 
[*]in_author:-2 [*]in_admin:-2 [*]in_follow:-2') FROM Event WHERE @rid = 
#14:8


This partially worked since it removed
*   "out_author.in_author"*
*   "out_author.out_avatar.in_thumb"*
*   "out_author.out_avatar.in_avatar"*

But it did NOT remove
*   "out_author.in_admin"*
*   "out_author.in_follow"*
   

{
    "@rid": "#14:8",
    "@class": "Event",
    "name": "EVENT_TEST",
    "out_author": [
        {
            "@rid": "#15:0",
            "@class": "Org",
            "name": "ORG_TEST",
            "in_admin": [ "#13:0", "#13:5", "#13:6", "#13:9", "#13:10", 
"#13:13", ... ],
            "in_follow": [ "#13:0", "#13:4", "#13:5", "#13:6", "#13:14", 
"#13:15", ... ],
            "out_avatar": [
                {
                    "@rid": "#16:2",
                    "@class": "Media",
                    "url": "www.image.com"
                }
            ]
        }
    ],
    "out_thumb": [
        {
            "@rid": "#16:1",
            "@class": "Media",
            "url": "www.image.com"
        }
    ]
}


I also tried to use:

*out_author.in_admin:-2   **out_author.in_follow:-2*

but the result is the same, it's just not excluding them from the result.


Am I doing anything wrong?
How can I setup this query?

Thank you very much!

[davide]

-- 

--- 
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.

Reply via email to