Введение:OrientDB друг запрос друзей с дополнительной информацией и фильтрации
Привет,
У меня есть вопрос о том, как создать запрос OrientDB. Запрос должен получить все вершины друзей друзей (это эквивалентно отношениям второго уровня) + мост между 2. После этого запрос должен фильтровать записи после свойства edge.
Я бегу OrientDB 1.7.4.
схемы Пример:
Давайте рассмотрим пример, принимая следующую схему:
-> Пользователь является Vertex, со свойством ID (INT)
-> Знает это край , с типом свойства (строка) (скажем, это свойство имеет несколько значений: друг, семья и т. д.)
Отношения, которые я ищу, это вот так:
User <--knows--> User <--knows--> User
(1) (2) (3)
Мне нужны все отношения, не имеет значения, в каком направлении они имеют (даже если направление важно для других запросов).
Чтобы получить все пользователи (User3) второй степени, запрос, как это будет достаточно:
select expand(set(both().both())) from <rid>
Вопросы:
Теперь у меня есть 2 основные проблемы/вопросы, которые я не могу понять их:
Если запрос выше возвращает список записей из класса User (USER3), как я могу получить запись в качестве пользователя (USER3) A ND Пользователь (или идентификатор свойства) от пользователя в середине отношения (см. Выше: User2)
Как фильтровать запрос для перемещения (или выбора) только через ребра, имеющие определенное свойство. Чтобы быть более конкретным, я хочу, чтобы второй запрос нашел пользователей, которые из вопроса 1, но являются друзьями друзей:
User <--knows(method='friend')--> User <--knows(method='friend')--> User
.
Это 'выбрать Бот («знает») [метод =«друг»] из User' дает вам края с помощью метода «friend». Может быть, это может вам помочь. – vitorenesduarte
Привет, возьмите ваш ответ. Это помогает, но это не совсем то, что я ищу. Таким образом, я могу получить ребра, но не вершины. Мне нужен мой вывод для класса User. – ashcrok