OrientDB如何匹配多个相关类

OrientDB如何匹配多个相关类,orientdb,orientdb2.2,Orientdb,Orientdb2.2,我试图写一个匹配语句来提取相关数据 CREATE CLASS Member EXTENDS V; CREATE CLASS DirectVolumes EXTENDS V; CREATE SEQUENCE dvSequence TYPE ORDERED; CREATE CLASS GroupVolumes EXTENDS V; CREATE SEQUENCE groupVolumesSequence TYPE ORDERED; CREATE CLASS GenerationVolumes EXT

我试图写一个匹配语句来提取相关数据

CREATE CLASS Member EXTENDS V;
CREATE CLASS DirectVolumes EXTENDS V;
CREATE SEQUENCE dvSequence TYPE ORDERED;
CREATE CLASS GroupVolumes EXTENDS V;
CREATE SEQUENCE groupVolumesSequence TYPE ORDERED;
CREATE CLASS GenerationVolumes EXTENDS V;
CREATE SEQUENCE genGroupVolumesSequence TYPE ORDERED;
CREATE SEQUENCE memberIdSeq TYPE ORDERED;
CREATE VERTEX Member SET id=sequence('memberIdSeq').next();
CREATE VERTEX DirectVolumes set id=sequence('dvSequence').next(); 
CREATE VERTEX GroupVolumes set id=sequence('groupVolumesSequence').next();
CREATE VERTEX GenerationVolumes set id=sequence('genGroupVolumesSequence').next();
CREATE EDGE OWNS_DV_CURRENT FROM (SELECT FROM Member WHERE id = 1) TO (select from DirectVolumes where id = 1);
CREATE EDGE OWNS_PG_CURRENT FROM (SELECT FROM Member WHERE id = 1) TO (select from GroupVolumes where id = 1); 
CREATE EDGE OWNS_GG_CURRENT FROM (SELECT FROM Member WHERE id = 1) TO (select from GenerationVolumes where id = 1); 
现在我希望成员和拥有当前,拥有当前,拥有当前,拥有当前边缘数据。为了简单起见,我删除了属性。 用火柴做这件事的正确方法是什么?我不知道如何获取多个相关类。查询似乎可以,但它返回0。我想它是在OWNS\u PG\u CURRENT上查找OWNS\u DV\u CURRENT,而不是在成员本身上查找OWNS\u PG\u CURRENT

select from (MATCH {class: Member, as:member}.out("OWNS_DV_CURRENT"){as:dv}.out("OWNS_PG_CURRENT") {as: pg} RETURN member, dv,pg)
试试这个:

 MATCH 
  {class: Member, as:member}.out("OWNS_DV_CURRENT"){as:dv},
  {as:member}.out("OWNS_PG_CURRENT") {as: pg} 
 RETURN member, dv,pg

没有火柴怎么办?选择@this作为成员,out'OWNS_DV_CURRENT'作为OWNS_DV_CURRENT,out'OWNS_PG_CURRENT'作为OWNS_PG_CURRENT,out'OWNS_GG_CURRENT'作为OWNS_GG_CURRENT来自成员谢谢,看起来这对我很有用。非常感谢。此查询是获取这些节点的所有属性的正确方法吗?`选择Member.firstName作为firstName,OWNS_DV_CURRENT.id,OWNS_PG_CURRENT.id,OWNS_GG_CURRENT.id从select@this作为Member,out'OWNS_DV_CURRENT'作为OWNS_DV_CURRENT,out'OWNS_PG_CURRENT'作为OWNS_PG_CURRENT,out'OWNS_GG_CURRENT'作为OWNS_GG_CURRENT从Member'如何表示边缘的目标端及其属性?谢谢,我可以在匹配的顶部读取select查询中的属性,这理解正确吗从MATCH{class:member,as:member}中选择member.firstName,dv.id,pg.id。outOWNS_dv_CURRENT{as:dv},{as:member}。outOWNS_pg_CURRENT{as:pg}返回member,dv,pg`是的,这是正确的,但也可以在MATCH语句中执行此操作:MATCH。。。RETURN member.firstName、dv.id、pg.id