У меня есть события, которые хранятся в виде документов, которые содержат список ссылок, которые состоят из идентификатора другого события, а также поля типа с указанием их связи.
"links": [
{
"type": "CAUSE",
"target": "ID1"
},
{
"type": "CAUSE2",
"target": "ID2"
},
]
Я хочу иметь возможность начать с события, а затем проходить эти события в обоих направлениях для определенного типа ссылок.
Мне удается найти правильную первую вершину, но затем запрос находит другие события, которые не должны быть включены. Обработка запроса также занимает много времени.
Я попытался изменить фильтрацию на p.edges [*] = 'CAUSE', но тогда я не получил никаких результатов.
Я удалил фильтрацию, которая, кажется, дает желаемые результаты на скорости около 300 мс.
FOR doc IN Events FILTER doc.meta.id == 'ID' FOR v, e, p IN 1..10 OUTBOUND doc GRAPH 'traversalGraph' FILTER e.type == 'CAUSE' COLLECT res = v SORT res.meta.time DESC LIMIT 4 RETURN res
FOR doc IN Events FILTER doc.meta.id == 'ID' FOR v, e, p IN 1..10 INBOUND doc GRAPH 'traversalGraph' FILTER e.type == 'CAUSE' COLLECT res = v SORT res.meta.time ASC LIMIT 4 RETURN res
Итак, я хочу пройти по графику в обоих направлениях (по одному за раз) на основе linkID данного linkType. Мне также нужно, чтобы производительность была лучше, так как в данный момент использование MongoDB и самостоятельное выполнение обхода графика.