OrientDB / PhpOrient получить пользователей от пользователя с краем

В настоящее время у меня есть 3 класса в моей схеме; User, Thread а также IsMember,

Потоки могут иметь преимущество перед пользователями с именем IsMember, то есть они принадлежат этой теме (приложение чата).

Я хотел бы иметь все темы, к которым принадлежит пользователь. Это легко сделать с помощью следующего запроса:

select EXPAND(IN('IsMember')) from <@rid> limit -1

Однако это приводит к массиву с потоками, которые имеют ссылку на ребра IsMember в OUT_IsMember смещение. Вместо этого я хотел бы иметь User объекты, вставленные в Thread объекты. Как это:

[
{
class: "Thread",
users: [
{
class: "User"},
{
class: "User"}
]
}
]

Так как есть много записей, использующих Traverse, как;

traverse OUT('IsMember') from (select EXPAND(IN('IsMember')) from <@rid>)

просто не обрезал бы его, так как мне пришлось бы перебирать потоки / пользователей, чтобы отобразить их, что заняло бы слишком много времени.

Поскольку я пишу на PHP, я использую официальный драйвер https://github.com/Ostico/PhpOrient с этим драйвером Bag остается пустым, поэтому следующий запрос также не будет работать;

select EXPAND(IN('IsMember')) from 12:589 fetchplan out_IsMember:2

1

Решение

Если вы хотите извлечь пользователей, которые связаны с потоком, который связан с данным пользователем, вы можете использовать

SELECT expand(IN('IsMember').out("IsMember")) FROM <@rid>
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector