batch-processing - OrientDB:有关 RecordLinks 的信息
问题描述
我正在尝试在 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 获取属性,是吗?
有谁知道我该怎么做?
解决方案
要返回对象的属性,您只需将 .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 }
推荐阅读
- ruby-on-rails - 通过验证从另一个控制器视图创建
- django - Django Admin--插入过滤区和明天
- angular - Angular 5,输入格式化和解析,什么是标准解决方案
- php - 无法使用 Pods Framework 字段返回值进行计算
- sql - 如何使用随机值更新列中的所有行?
- java - 如何从java中的另一个包中导入类
- reactjs - 测试 typescript asyc 函数,即使在 .then() 方法中调用了异步回调,也没有调用它
- php - 如何使用 TCPDF 发送包含 PDF 的多封电子邮件
- jquery - 选择后flatpickr格式化结束值
- reactjs - 如何在多个项目中重用 Typescript React 组件?