将String Datatype列转换为" Embeddedlist" Orientdb中的数据类型

时间:2016-08-31 09:01:13

标签: orientdb

我有一个专栏" userUnits"作为用户和userUnits列的字符串数据类型,以逗号(,)分隔的多个单位输入,因为user1 userUnits是" admin,manager" 和user2 userUnits是&# 34;管理"作为字符串数据类型,我必须将其转换为" embeddedlist" user1 userUnits的数据类型为 [" admin"," manager"] ,user2 userUnits将为[" admin"] 那么如何为所有用户转换它? 请有人帮我这个吗

1 个答案:

答案 0 :(得分:0)

我试图重现你的问题

enter image description here

我使用了这个查询

update user set newProperty=userUnits.asList()

我得到了

enter image description here

要从记录中删除属性userUnits,可以使用

update user remove userUnits

希望它有所帮助。

<强>更新

您可以使用此javascript函数

var g=orient.getGraphNoTx();
g.command("sql","CREATE PROPERTY User.newProperty embeddedlist" );
var users = g.command("sql","select from User");
for(i=0;i<users.length;i++){
    var record=users[i];
    var id=record.getId();
    var userUnits=record.getProperty("userUnits");
    var array=userUnits.split(",");
    var myvalue='"';
    for(j=0;j<array.length;j++){
        if(j==0)
            myvalue+=array[j]+'"';
        else
            myvalue+=',"'+array[j]+'"';
    }
    g.command("sql","UPDATE " + id + " set newProperty = [ " + myvalue + "]");
}
g.command("sql","UPDATE user REMOVE " + userUnits);