ArangoDB AQL — Могу ли я просмотреть несколько графиков в одном запросе?

#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 /…