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
)
)
是否可以在 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
)
)