Hi Jean

how do you remove edges between Channel and Account?



2015-09-23 5:33 GMT+02:00 Jean-Sebastien Lemay <
[email protected]>:

> Using OrientDB 2.1.1 Community Edition
>
> Situation:
>
>    - I have "Channel" and "Account" vertices.
>    - Users can join channels, and when they do, a
>    "ChannelActiveUserAccount" edge is created between the two (from Channel to
>    Account)
>    - I'm trying to run queries to determine how many users are sitting in
>    each channel, but I'm getting weird results
>
> In this instance, I know for a fact that I only have 1 user (#15:0)
> sitting in one of my 5 channels. See query below.
>
>
>
>
> *SELECT   @rid,  out("ChannelActiveUserAccount")FROM Channel*
>
> *rid out*
> *#31:0 []*
> *#31:1 []*
> *#31:2 #15:0*
> *#31:3 []*
> *#31:4 []*
>
> *{*
> *    "result": [*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#-2:0",*
> *            "@version": 0,*
> *            "rid": "#31:0",*
> *            "out": [*
>
> *            ],*
> *            "@fieldTypes": "rid=x"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#-2:1",*
> *            "@version": 0,*
> *            "rid": "#31:1",*
> *            "out": [*
>
> *            ],*
> *            "@fieldTypes": "rid=x"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#-2:2",*
> *            "@version": 0,*
> *            "rid": "#31:2",*
> *            "out": [*
> *                "#15:0"*
> *            ],*
> *            "@fieldTypes": "rid=x,out=z"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#-2:3",*
> *            "@version": 0,*
> *            "rid": "#31:3",*
> *            "out": [*
>
> *            ],*
> *            "@fieldTypes": "rid=x"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#-2:4",*
> *            "@version": 0,*
> *            "rid": "#31:4",*
> *            "out": [*
>
> *            ],*
> *            "@fieldTypes": "rid=x"*
> *        }*
> *    ],*
> *    "notification": "Query executed in 0.02 sec. Returned 5 record(s)"*
> *}*
>
> ----------
>
> However, if I decide to return the size of each array, to get a total
> instead, this happens.
>
> *SELECT *
> * @rid,*
> * out("ChannelActiveUserAccount").size()*
> *FROM Channel*
>
> *rid out*
> *#31:0 0*
> *#31:1 0*
> *#31:2 3*
> *#31:3 0*
> *#31:4 2*
>
> *{*
> *    "result": [*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#-2:0",*
> *            "@version": 0,*
> *            "rid": "#31:0",*
> *            "out": 0,*
> *            "@fieldTypes": "rid=x"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#-2:1",*
> *            "@version": 0,*
> *            "rid": "#31:1",*
> *            "out": 0,*
> *            "@fieldTypes": "rid=x"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#-2:2",*
> *            "@version": 0,*
> *            "rid": "#31:2",*
> *            "out": 3,*
> *            "@fieldTypes": "rid=x"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#-2:3",*
> *            "@version": 0,*
> *            "rid": "#31:3",*
> *            "out": 0,*
> *            "@fieldTypes": "rid=x"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#-2:4",*
> *            "@version": 0,*
> *            "rid": "#31:4",*
> *            "out": 2,*
> *            "@fieldTypes": "rid=x"*
> *        }*
> *    ],*
> *    "notification": "Query executed in 0.02 sec. Returned 5 record(s)"*
> *}*
>
> I'm not sure where the 3 and 2 are coming from. So I run another query
> below to see all the data.
>
> ----------
>
>
> *SELECT FROM Channel*
>
> *@rid @class ChannelActiveUserAccount*
> *#31:0 Channel []*
> *#31:1 Channel []*
> *#31:2 Channel #70:100 #70:103 #70:119*
> *#31:3 Channel []*
> *#31:4 Channel #70:101 #70:102*
>
> *{*
> *    "result": [*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#31:0",*
> *            "@class": "Channel",*
> *            "out_ChannelActiveUserAccount": [*
>
> *            ],*
> *            "@fieldTypes": "out_ChannelActiveUserAccount=g"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#31:1",*
> *            "@class": "Channel",*
> *            "out_ChannelActiveUserAccount": [*
>
> *            ],*
> *            "@fieldTypes": "out_ChannelActiveUserAccount=g"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#31:2",*
> *            "@class": "Channel",            *
> *            "out_ChannelActiveUserAccount": [*
> *                "#70:100",*
> *                "#70:103",*
> *                "#70:119"*
> *            ],            *
> *            "@fieldTypes": "out_ChannelActiveUserAccount=g"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#31:3",*
> * "@class": "Channel",            *
> *            "out_ChannelActiveUserAccount": [*
>
> *            ],            *
> *            "@fieldTypes": "out_ChannelActiveUserAccount=g"*
> *        },*
> *        {*
> *            "@type": "d",*
> *            "@rid": "#31:4",*
> *            "@class": "Channel",            *
> *            "out_ChannelActiveUserAccount": [*
> *                "#70:101",*
> *                "#70:102"*
> *            ],            *
> *            "@fieldTypes": "out_ChannelActiveUserAccount=g"*
> *        }*
> *    ],*
> *    "notification": "Query executed in 0.026 sec. Returned 5 record(s)"*
> *}*
>
> Now this is where I get confused, because some of the edges listed above
> (such as #70:101 for example) refer to edges that no longer exist. How come
> they are still in the array somehow? How did they not disappear?
>
> ----------
>
> If it helps, here's the database creation script:
>
> *CREATE CLASS Channel EXTENDS V;*
> *CREATE CLASS Account EXTENDS V;*
>
> *CREATE CLASS ChannelActiveUserAccount EXTENDS E;*
>
> *CREATE PROPERTY ChannelActiveUserAccount.out LINK Channel;*
> *CREATE PROPERTY ChannelActiveUserAccount.in LINK Account;*
>
> --
>
> ---
> 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.
>

-- 

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