У меня есть следующий случай:OrientDB Включить свойство от края, подключенного к конкретной вершине
(p:p1)
V1 ---E1---\
\
V2 (with properties)
/
V1 ---E1---/
(p:p2)
Таким образом, две вершины класса V1 подключены к другому Vertex типа V2, оба ребра одного и того же класса Е1, который имеет свойство «p».
Я хотел бы запрос, который:
- Цель экземпляр V1 (РИД)
- считывает все записи V2 (включая все свойства), которые подключены к выбранному V1 с помощью кромки класса E1
- Также включает свойство p от соединительного края E1 в возвращаемых документах.
Я попытался с:
SELECT *,in('E1')[p] as p FROM (SELECT EXPAND(out('E1')) FROM <V1-rid>) UNWIND p
Но это, конечно, дают 2 результаты, так как проекция возвращает значения из обоих краев Е1. Я только хочу, чтобы inlcude p сформировал край между моими выбранными V1 и V2.
У меня есть и другие подключения к V2, которые необходимо включить, но я хотел уточнить проблему, чтобы уменьшить сложность вопроса, и я думаю (надеюсь), что они не будут мешать ответу.
Update
Разъяснение:
Я хотел бы результат быть целые У2-записи с прилагаемыми свойствами «р», так что если V2 имеет свойство v2p1 :, v2p2, полученные данные должны выглядеть что-то вроде:
{
"v2p1": <value>,
"v2p2": <value>,
"p": <value>
}
Если последнее значение «р» от края и другие свойства от фактических V2 записей.
Я думаю, вы могли бы использовать http://orientdb.com/docs/2.2/SQL-Match.html –