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