如何在OrientDB中使查询与或条件匹配

如何在OrientDB中使查询与或条件匹配,orientdb,Orientdb,如何在OrientDB中编写具有或条件的匹配 例如:我想查找用户有权访问的文件,以及用户所属组有权访问的文件 select from ( MATCH {class: user, where:(userid='User1'), as: u}, {as:u}-accessTo->{class: so,where:(projectId='Project1'), as: r}, {as:u}-memberOf->{class: group, where:(projectId='Proje

如何在OrientDB中编写具有
条件的匹配

例如:我想查找用户有权访问的文件,以及用户所属组有权访问的文件

select   from (
MATCH
{class: user, where:(userid='User1'), as: u},
{as:u}-accessTo->{class: so,where:(projectId='Project1'), as: r},
{as:u}-memberOf->{class: group, where:(projectId='Project1')}-accessTo-> 
{class: so,as: r}
RETURN r)

目前MATCH语句中没有OR选项,因此您必须使用两个查询和一个unionAll:

select  unionAll($a, $b) 
LET
   $a = (MATCH
      {class: user, where:(userid='User1'), as: u},
      {as:u}-accessTo->{class: so,where:(projectId='Project1'), as: r},
   RETURN r),
   $b = (MATCH
      {class: user, where:(userid='User1'), as: u},
      {as:u}-memberOf->{class: group, where:(projectId='Project1')}-accessTo-> 
      {class: so,as: r}
   RETURN r),
)