Аранго запрос, сбор с подсчетом ребер - PullRequest
0 голосов
/ 11 июня 2018

Действительно новичок в Аранго, и я экспериментирую с ним, поэтому, пожалуйста, потерпите меня.У меня есть коллекция фидов, и каждый фид может понравиться пользователю

[user] --- 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
]

Если в ленте нет лайков, нет ребра, входящего в этот фид, как мне вернуть количество лайков в 0

Что-то вроде этого?

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

1 Ответ

0 голосов
/ 12 июня 2018

Итак, наконец-то я нашел решение.Мне пришлось создать график и пройти его.Окончательный результат ниже
FOR f IN users_feed
SORT f.creationDate
FILTER f.author == @author_id
LIMIT @start_index, @ end_index
COLLECT feed = f
LET inboundEdges =ДЛИНА (ДЛЯ v IN 1..1 ВХОДЯЩАЯ ГРАФИК ленты новостей

...