OrientDB:如何在 UPDATE 操作中使用 MATCH?

OrientDB: How to use MATCH in an UPDATE operation?

是否可以在 UPDATE 操作中使用 MATCH?我试过这样的事情:

UPDATE (MATCH...RETURN...) SET...

我认为它会起作用,因为确实如此:

UPDATE #12:34 SET...

但是我想出的任何语法都没有成功。

如果支持,那么正确的语法是什么?

是的,你可以做到,但是 MATCH 必须 return 永久记录,例如

RETURN $elements

或(在 v 3.0 中)

RETURN expand(x)

如果您使用的是 v 3.0,请考虑您只是给了我一个发现错误的机会(谢谢!),因此您将在 RC2 上遇到 NullPointerException。我已经修复了它,修复将在几分钟后出现在快照中,并将与第一个 3.0.0 GA

一起发布

效果不错

UPDATE EDGE Custom_Family_Of_Custom 
SET survey_status = 'value_1'
WHERE @rid in (
SELECT level1_e.@rid FROM (
MATCH {class: Custom, as: custom, where: (custom_uuid = 'param_uuid_1')}
.bothE('Custom_Family_Of_Custom') {as: e} 
.bothV('Custom') {as: v, where: (custom_uuid = 'param_uuid_2')} 
return e
)
)