Результаты, возвращенные 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()
,