将字符串数据类型列转换为 Orientdb 中的 "Embeddedlist" 数据类型
Convert String Datatype column to "Embeddedlist" datatype in Orientdb
我有一个列 "userUnits" 作为关于 user 和 userUnits 列的字符串数据类型,输入的多个单位由逗号 (,) 分隔,因为 user1 userUnits 是 "admin,manager" 和 user2 userUnits 是 "admin" 作为字符串数据类型,我必须将其转换为 "embeddedlist" 数据类型,因为 user1 userUnits 将是 ["admin", "manager"] 和 user2 userUnits 将是 ["admin"]
那么如何为所有用户转换它呢?
谁能帮我解决这个问题
我试过重现你的问题
我使用了这个查询
update user set newProperty=userUnits.asList()
我得到了
要从您的记录中删除 属性 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);
我有一个列 "userUnits" 作为关于 user 和 userUnits 列的字符串数据类型,输入的多个单位由逗号 (,) 分隔,因为 user1 userUnits 是 "admin,manager" 和 user2 userUnits 是 "admin" 作为字符串数据类型,我必须将其转换为 "embeddedlist" 数据类型,因为 user1 userUnits 将是 ["admin", "manager"] 和 user2 userUnits 将是 ["admin"] 那么如何为所有用户转换它呢? 谁能帮我解决这个问题
我试过重现你的问题
我使用了这个查询
update user set newProperty=userUnits.asList()
我得到了
要从您的记录中删除 属性 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);