我正在尝试在orientdb中运行批处理命令,我正在更新记录(可以是边或顶点)。我试图在批处理命令中运行它,以便我返回属性“名称”并从数据库中删除(假设“名称保证存在)。
所以,我有以下批处理命令:
begin;
let a0 = update #44:845 merge {"name": "B4"} return after ;
let a1 = update #44:849 merge {"name": "Name4"} return after ;
let a2 = update #42:297 merge {"name": "Name2"} return after ;
let a3 = update #43:278 merge {"name": "B1"} return after ;
let a4 = update #42:298 merge {"name": "B2"} return after ;
let a5 = update #29:15698 merge { "name": "Name1""} return after ;
commit retry 100;
return [$a0,$a1,$a2,$a3,$a4,$a5]
但是这不是返回对象,而是返回orientdbLinks,它不允许我获取对象的名称。
在我的批处理函数结束时,我想返回一个这样的字典: {“B4”,“44:845”,“Name3”:“44:849”,. 。 }
这可能吗?我尝试了一堆不同的命令
let a0 = update #44:845 merge {"name": "B4"} return after ;
let a0 = update #44:845 merge {"name": "B4"} return after [$current@rid, $current.name]; #This fails entirely
let a0 = update #44:845 merge {"name": "B4"} return after $current;
但无论我尝试什么,它只是返回一个OrientDBRecordLink而不是一个正确的OrientDBStorageObject。据我所知,没有办法从OrientDBRecordLink获取属性,是吗?
有谁知道我该怎么做?
答案 0 :(得分:0)
要返回对象的属性,您只需要在变量上附加.field,对于字典,您应该查看返回地图:
return { "$a0.name" : $a0.@rid, "$a1.name" : $a1.@rid, "$a2.name" : $a2.@rid, "$a3.name" : $a3.@rid, "$a4.name" : $a4.@rid, "$a5.name" : $a5.@rid }