Orientdb 3.0 如何在不丢失现有数据的情况下将映射字段用于动态属性

Orientdb 3.0 How to use map field for dynamic attributes without loosing existing data

我如何尝试使用地图来存储多个键值属性。我看到的问题是它不允许我存储现有数据,每次我尝试设置新的 属性 时它都会覆盖数据。

 Create VERTEX Person extends V;
CREATE CLASS Person EXTENDS V;
CREATE PROPERTY Person.name STRING (MANDATORY TRUE, MIN 3, MAX 50);
Create VERTEX Person set name="test";
 update ( SELECT from Person where name="test") SET mapField=
 {"property1":mapField.property1+10};

将 属性1 设置到地图中,并更新它,效果很好。

update ( SELECT from Person where name="test") SET mapField=
{"property1":mapField.property1+30};
select from Person;

设置另一个属性 "property2",现在我松开属性1.

update ( SELECT from Person where name="test") SET mapField=
{"property2":mapField.property2+10};
 select from Person;

我可以保留以前的 属性 并使这项工作仍然有效吗?

谢谢 哈里

这应该可以解决问题:

update ( SELECT from Person where name="test") 
SET mapField.property1 = mapField.property1 + 30;

在 V 2.2 中还有一个 UPDATE PUT 选项,即。

update ( SELECT from Person where name="test") 
PUT mapField = property1, eval('mapField.property1 + 30');

但它不再受支持(而且它确实很丑)