如何在OrientDB中使查询与或条件匹配
如何在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
或条件的匹配
例如:我想查找用户有权访问的文件,以及用户所属组有权访问的文件
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),
)