目前我的架构中有3个班级; User
,Thread
和IsMember
。
线程可以为名为IsMember的用户提供边缘,这意味着它们属于该线程(聊天应用程序)。
我想拥有用户所属的所有主题。这可以通过使用以下查询轻松完成:
select EXPAND(IN('IsMember')) from <@rid> limit -1
然而,这会产生一个带有Threads的数组,该数组引用OUT_IsMember
偏移量中的IsMember边。取而代之的是,我想在User
个对象中插入Thread
个对象。像这样:
[
{
class: "Thread",
users: [
{
class: "User"
},
{
class: "User"
}
]
}
]
由于有许多记录使用Traverse,如<; p>
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
答案 0 :(得分:2)
如果要提取连接到与给定用户连接的线程的用户,可以使用
SELECT expand(IN('IsMember').out("IsMember")) FROM <@rid>