#arangodb #aql
#arangodb #aql
Вопрос:
Я хотел бы хранить данные, которые не связаны напрямую, в отдельных именованных графах в ArangoDB. Однако могут быть случаи, когда я хотел бы запросить данные из более чем одного из этих графиков одновременно.
Я знаю, что вы можете выполнить обход графика, как показано ниже, в частности, используя ключевое слово ‘GRAPH’, но возможно ли сделать что-то вроде ‘GRAPH graphName1, graphName2’ для запроса обоих одновременно?
FOR vertex[, edge[, path]]
IN [min[..max]]
OUTBOUND|INBOUND|ANY startVertex
GRAPH graphName
[OPTIONS options]
Я знаю, что мог бы «объединить» результаты нескольких из приведенных выше обходов графика, но, учитывая, что только GraphName будет отличаться, было бы здорово, если бы я мог сделать его кратким вместо повторения избыточного кода.
Ответ №1:
Вы не можете просмотреть несколько именованных графиков в обходе. Вместо этого вы можете либо:
Создайте новый именованный граф со всеми необходимыми вершинами и ребрами
Или (лучше)
Просматривайте коллекции напрямую, не используя именованные графики. Производительность такая же. Вот синтаксис:
FOR vertex[, edge[, path]]
IN [min[..max]]
OUTBOUND|INBOUND|ANY startVertex
edgeCollection1, ..., edgeCollectionN
[PRUNE pruneCondition]
[OPTIONS options]
Комментарии:
1. Соответствующая документация, касающаяся анонимных графиков / работы с наборами коллекций: docs.arangodb.com/3.4/Manual/Graphs/#anonymous-graphs и docs.arangodb.com/3.4/AQL/Graphs /…