【问题标题】:Gremlin access a property "id"Gremlin 访问属性“id”
【发布时间】:2015-03-23 16:14:18
【问题描述】:

我们使用 OrientDB,在使用 Gremlin 终端时,我们无法查询单个用户 ID。

我们有这个

gremlin> g.V('@class','PERSON')[0..<5].map();
==>{id=50269488}
==>{id=55225663}
==>{id=6845786}
==>{id=55226938}
==>{id=55226723}
gremlin> g.V('@class','PERSON').has('id',50269488)[0..<5].map();
gremlin>

如您所见,我尝试过滤第一个 ID,但它没有返回任何内容。我什至尝试按照here 的建议将类型转换为50269488L

有什么建议可以尝试吗?

【问题讨论】:

    标签: groovy graph orientdb gremlin


    【解决方案1】:

    我猜这是因为属性 id 以某种方式被保留。 一个例子:

    gremlin> g.V.id
    ==>#15:0
    ==>#15:1
    ...
    

    这将返回 RecordId 而不是属性 id


    来自工作室,例如:

    create class PERSON extends V
    create Property PERSON.id2 long
    create vertex PERSON set id2 = 12345
    

    那么这应该可以工作:

    gremlin> g.V('@class','PERSON').has('id2',12345L)[0..<5].map();
    ==>{id2=12345}
    

    更新:

    解决此问题的方法是使用 getProperty 方法进行过滤:

    g.V('@class','PERSON').filter{it.getProperty("id")==12345}[0..<5].map();
    

    【讨论】:

    • 是的,这有帮助,但我知道内部 ID 是 @rid。不确定是否有步行。
    猜你喜欢
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2021-12-03
    • 2021-01-08
    • 1970-01-01
    • 2017-11-17
    • 2017-11-27
    • 2012-06-10
    相关资源
    最近更新 更多