【问题标题】:OrientDB: Information about RecordLinksOrientDB:有关 RecordLinks 的信息
【发布时间】:2018-05-14 14:02:26
【问题描述】:

我正在尝试在 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 获取属性,是吗?

有人知道我该怎么做吗?

【问题讨论】:

  • 现在返回的究竟是什么?只是对对象的引用?
  • 目前返回的是一个 pyorient.otypes.OrientRecordLink 对象

标签: batch-processing orientdb


【解决方案1】:

要返回对象的属性,您只需在变量上附加 .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 }

OrientDB Docs | SQL-Batch

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 2014-08-24
    • 2021-01-20
    • 2014-11-21
    • 1970-01-01
    相关资源
    最近更新 更多