Результаты, возвращенные Pyorient и OrientDB Studio по одному запросу, не совпадают

Я получаю разные результаты при выполнении одной и той же команды на OrientDB и Pyorient. С помощью outE().inV() Функция в OrientDB приводит к полному обходу графа, тогда как в пиориенте она возвращает только первую вершину.

Образец графика

При запросе графика (находится в ссылке выше) используется следующий запрос:

      traverse outE('has_component').inV() 
  from 
    (select expand(rid) from index:part.part_id where key = 'A') 
  maxdepth 2 strategy breadth_first

используя OrientDB studio, я получаю желаемый результат, который является в основном обходом всего графика. Но когда я использую эту команду в Pyorient, как:

cmd = """
  traverse outE('has_component').inV() 
  from 
    (select expand(rid) from index:part.part_id where key = 'A') 
  maxdepth 2 strategy breadth_first
"""

r = client.query(cmd, -1)

Я получаю только корневой узел (то есть "A"). Он не пересекает весь граф. Как мне добиться того, чтобы Pyorient работал как студия OrientDB?

Я знаю, что могу пересечь график, используя out() вместо outE().inV()но я хотел бы ограничить обход в некоторой точке, накладывая условия на параметры ребер, как:

outE(<edge-class-name>)[<condition-on-edge-parameters>].inV()

вот почему я делаю обход таким образом. Обход работает нормально в пиориенте, когда я использую out(),

0 ответов

Другие вопросы по тегам