Arango查询,带边数的集合

时间:2018-06-11 07:48:17

标签: arangodb

Arango真的很新,我正在试验它,所以请耐心等待。我有一个Feed集合,每个Feed都可以被用户喜欢

[用户] --- --- likes_feed>进料。

我正在尝试创建一个将由其作者返回Feed的查询,并在结果中添加喜欢的数量。这是我到目前为止,它似乎工作,但它只返回至少有1喜欢的饲料(饲料和用户之间存在边缘) 以下是我的查询

FOR f IN feed  
SORT f.creationDate  
FILTER f.author == @user_key 
LIMIT @start_index, @end_index
FOR x IN INBOUND CONCAT('feed','/',f._key) likes_feed 
OPTIONS {bfs: true, uniqueVertices: 'global'} 
COLLECT feed = f WITH COUNT INTO counter  
RETURN {   
'feed':feed,
likes: counter  
}

这是结果的一个例子

[
"feed":{
"_key":"string",
"_id":"users_feed/1680835", 
"_rev":"_W8zRPqe--_",
"author":"author_a",
"creationDate":"98879845467787979",
"title":"some title",
"caption":"some caption'
},
"likes":1
]

如果Feed没有喜欢,没有边缘入该Feed,如何将喜欢的数量计为0

这样的东西?

[
"feed":{
"_key":"string",
"_id":"users_feed/1680835",
"_rev":"_W8zRPqe--_",
"author":"author_a",
"creationDate":"98879845467787979",
"title":"some title",
"caption":"some caption'
},
"likes":0
]

1 个答案:

答案 0 :(得分:1)

所以最后我找到了解决方案。我不得不创建一个图表并遍历它。最终结果如下 FOR f IN users_feed
排序f.creationDate
FILTER f.author == @ author_id
LIMIT @start_index,@ end_index
收集饲料= f
LET inboundEdges = LENGTH(FOR IN IN 1..1 INBOUND feed GRAPH'like_graph'RETURN 1)
返回{
饲料:饲料
,喜欢:inboundEdges
}