通过在OrientDB中保留对原始数据的引用来选择和插入

通过在OrientDB中保留对原始数据的引用来选择和插入,orientdb,Orientdb,我正在探索graphDB查询语言。目前正在查看查询语言。我想看看以下结构的OrientDB中的事务是什么样子的: 假设我有两个顶点,A和QA: CREATE CLASS A EXTENDS V CREATE CLASS QA EXTENDS V 类A有一个名为整型p1的属性: CREATE PROPERTY A.p1 integer 假设A有三条记录,分别称为a1、a2、a3,它们对应的p1值为a1。p1=2;a2.p1=5;a3.p1=10: INSERT INTO A SET p1 =

我正在探索graphDB查询语言。目前正在查看查询语言。我想看看以下结构的OrientDB中的事务是什么样子的:

假设我有两个顶点,AQA

CREATE CLASS A EXTENDS V

CREATE CLASS QA EXTENDS V
类A有一个名为整型p1的属性:

CREATE PROPERTY A.p1 integer
假设A有三条记录,分别称为
a1、a2、a3
,它们对应的p1值为
a1。p1=2;a2.p1=5;a3.p1=10

INSERT INTO A SET p1 = 2            // call this a1
     Created record with RID #11:1   
INSERT INTO A SET p1 = 5            // call this a2
      Created record with RID #11:2   
INSERT INTO A SET p1 = 10           // call this a3
      Created record with RID #11:3    
假设我有一个称为isA的优势,从QA到A

CREATE CLASS isA EXTENDS E    // it seems that I can not restrict isA records to connect only QA records to A
我想了解以下事务在OrientDB中的情况:

首先:
选择所有A的内容,其中p1<6
=>因此我将得到{a1,a2}

second:
对于第一个查询中的每个元素,在QA中创建一个元素
=>因此我将得到例如{qa1,qa2}

第三个
将记录添加到isA边缘,以便它们将QA中的元素连接到其在isA边缘中的对应元素=>因此,例如,将qa1连接到a1,将qa2连接到a2

这三个查询似乎都是相互关联的

我的第1个问题:上述事务(即一组相互关联的查询)在OrientDB中是什么样子的


请注意,A的元素是动态的(在我的系统中不是固定的),每当A的内容通过使用上述事务发生变化时,我希望将QA元素与A同步;例如,如果我将a4添加到p1=3的A中,并运行上述查询集,我希望在QA中获得一条新记录,假设qa4链接到a4。

1st:
SELECT FROM A WHERE p1<6
2nd:
插入QA FROM SELECT FROM A WHERE p1<6
第三个我认为不可能使用SQL。第三个是问题的核心,因为您编写的第1个和第2个是可以实现的。第三个打算以某种方式将第二个编织到第一个!我认为使用主机语言(如Scala或Java)进行编织是可行的,但我想知道是否有任何方法可以直接使用OrientDB查询语言进行编织?