我有一个由OrientDB中的图表代表的模型。该模型由几个类组成,其中包括B
和has
。这些类与关系A
相关联,作为从B
到A
的边缘。边缘还将A ---has--> B
A ---has--> C
连接到其他类:
B
我想更新has
的属性,如果它具有A
边缘,并且具有给定RecordID的has
。
目前,我正在从给定的RecordID开始选择类B
的所有边UPDATE (SELECT expand(out('has')[@class = 'B']) FROM #11:1) SET prop = true
的目标/外部顶点。这有效,但感觉我错过了一个更简单的解决方案。
UPDATE B SET prop = true WHERE in('has').@rid = #11:1
我也尝试过以下操作,不按预期工作:
{{1}}
是否有比使用SUBSELECT的UPDATE更简单的解决方案?
答案 0 :(得分:0)
我认为没有任何premade sql函数可以在update中进行这种过滤。
您的第一个查询是要走的路,因为它遍历而不是对所有顶点进行过滤。是的,你有一个子查询,但它比在update语句中使用where更快。
拥有这样的语法会很酷:
p.one {
border: 2px solid #0088dd;
}
p.two {
border-width: 2px;
border-color: #bbbbaa #111111 #ee3e80 #0088dd;
border-style: solid;
}
我们必须使用子查询才能工作。这对我来说很自然。