Hi, This problem probably raised because of "cache optimization" issue. We fixed it in 2.2 version.
Also I will port it in 2.1 branch. On Wed, Sep 23, 2015 at 8:40 AM Jean-Sebastien Lemay < [email protected]> wrote: > Through the Java API. Code simplified below. > > // Get reference to GraphDB module > OrientGraph db = [...]; > > try { > // Retrieve the channel vertex > OrientVertex channelVtx = this.getVertex(db, > KEY_CHANNEL_ID, > channelId); > > // Retrieve the account vertex > OrientVertex accountVtx = this.getVertex(db, > KEY_ACCOUNT_ID, > accountId); > > try { > // Retrieve edge > Edge edge = channelVtx.getEdges( > accountVtx, > Direction.OUT, > EDGE_CHANNEL_ACTIVE_USER_ACCOUNT) > .iterator().next(); > > // Remove edge > db.removeEdge(edge); > } > catch (NoSuchElementException ex) { > throw new DataNotFoundException(); > } > } > catch (OException | DataNotFoundException ex) { > [...] > } > > > > > > On Wednesday, September 23, 2015 at 1:24:52 PM UTC+8, Enrico Risa wrote: > >> 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. > -- --- 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.
