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

Orientdb 3.0如何在不丢失现有数据的情况下为动态属性使用映射字段,orientdb,Orientdb,我如何尝试使用map来存储多个键值属性。我看到的问题是,它不允许我存储现有数据,每次我尝试设置新属性时,它都会覆盖数据 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 fro

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

 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};
将property1设置到地图中,并对其进行更新,效果很好

update ( SELECT from Person where name="test") SET mapField=
{"property1":mapField.property1+30};
select from Person;
设置另一个属性“property2”,现在我松开了property1

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;
在v2.2中还有一个更新的看跌期权,即

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

但是它不再受支持了(而且它确实很难看)

谢谢Luigi,它可以很好地处理null值(最初?),或者我应该使用coalesce函数吗?