通过SQL更新OrientDB EmbeddedMap Value

时间:2016-05-24 03:49:37

标签: orientdb

两个相关问题:

1)我可以使用以下语句设置(即完全替换EmbeddedMap字段的内容):

update #14:1 set Options = {"555":{"Action":"Test555","Enabled":false},"444":{"Action":"Test444","Enabled":false}}

但我可以添加或更新一个值,例如:

update #14:1 add Options = {"222":{"Action":"Test222","Enabled":false},"333":{"Action":"Test333","Enabled":false}}

2)我似乎无法找到在创建时将EmbeddedMap字段与记录中的其他字段一起设置的语法。

我搜索了这些例子的高低,并尝试了我能想到的每一个变种,但两个方面都没有运气。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用

update #14:1 put Options = '222', {"Action":"Test222","Enabled":false}

enter image description here

修改

我使用了2.2.0GA

我使用了这些命令:

create class MyClass extends V
insert into MyClass(name) values("test")
update #21:0 set Options = {"555":{"Action":"Test555","Enabled":false},"444":{"Action":"Test444","Enabled":false}}
update #21:0 put Options = '222', {"Action":"Test222","Enabled":false}
select from MyClass

enter image description here

编辑2

create property MyClass4.Options EmbeddedMap V
insert into MyClass4(name) values("test4")
update #34:0 set Options = {"555":{"@type":"d", "@class":"V","Action":"Test555","Enabled":false},"444":{"@type":"d", "@class":"V","Action":"Test444","Enabled":false}}
update #34:0 put Options = '222', {"@type":"d", "@class":"v","Action":"Test222","Enabled":false}

enter image description here

希望它有所帮助。