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.
