Gremlin 访问 属性 "id"
Gremlin access a property "id"
我们使用 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,但 return 什么也没有。我什至尝试按照建议 50269488L
进行类型转换 here
有什么建议可以尝试吗?
我猜是因为 属性 id 以某种方式被保留了。
一个例子:
gremlin> g.V.id
==>#15:0
==>#15:1
...
此returns 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();
我们使用 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,但 return 什么也没有。我什至尝试按照建议 50269488L
进行类型转换 here
有什么建议可以尝试吗?
我猜是因为 属性 id 以某种方式被保留了。 一个例子:
gremlin> g.V.id
==>#15:0
==>#15:1
...
此returns 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();