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.

Reply via email to