OrientDB / PhpOrient从具有优势的用户那里获得用户

问题描述 投票:1回答:1

目前我的Schema中有3个班级; UserThreadIsMember

线程可以对名为IsMember的用户具有优势,这意味着它们属于该线程(聊天应用程序)。

我想拥有用户所属的所有线程。使用以下查询可以轻松完成此操作:

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

但是,这会产生一个带有Threads的数组,该数组引用了OUT_IsMember偏移量中的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与此驱动程序袋保持为空,因此以下查询也不起作用;

select EXPAND(IN('IsMember')) from 12:589 fetchplan out_IsMember:2
php sql orientdb
1个回答
2
投票

如果要提取连接到与给定用户连接的线程的用户,则可以使用

SELECT expand(IN('IsMember').out("IsMember")) FROM <@rid>
© www.soinside.com 2019 - 2024. All rights reserved.