Neo4j 不使用lambda的Hashmap属性上的gremlin筛选器

Neo4j 不使用lambda的Hashmap属性上的gremlin筛选器,neo4j,orientdb,graph-databases,gremlin,tinkerpop3,Neo4j,Orientdb,Graph Databases,Gremlin,Tinkerpop3,如果在图形数据库中有一个顶点,其中一个属性是贴图,有没有一种方法可以在不使用lambda的情况下过滤贴图的属性 gremlin> g.V().filter{ it.get().values('prop').next().get('key') == 'val' } 按如下方式创建顶点: gremlin> v = graph.addVertex(label, 'LABEL') ==>v[68] gremlin> g.V(68).property('prop', [ key

如果在图形数据库中有一个顶点,其中一个属性是贴图,有没有一种方法可以在不使用lambda的情况下过滤贴图的属性

 gremlin> g.V().filter{ it.get().values('prop').next().get('key') == 'val' }
按如下方式创建顶点:

gremlin> v = graph.addVertex(label, 'LABEL')
==>v[68]
gremlin> g.V(68).property('prop', [ key: 'val' ])
==>v[68]
gremlin> g.V(68).valueMap()
==>{prop=[{key=val}]}
g.V().has('prop', 'val')
有没有一种方法可以在不使用lambda的情况下通过prop.key=='val'过滤顶点

 gremlin> g.V().filter{ it.get().values('prop').next().get('key') == 'val' }

如果您要做的只是查找所有具有'prop'='val'的顶点,则可以使用gremlin has步骤()执行此操作,您的查询如下所示:

gremlin> v = graph.addVertex(label, 'LABEL')
==>v[68]
gremlin> g.V(68).property('prop', [ key: 'val' ])
==>v[68]
gremlin> g.V(68).valueMap()
==>{prop=[{key=val}]}
g.V().has('prop', 'val')
给你:

gremlin> g = TinkerGraph.open().traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.addV('LABEL').
......1>     property('prop', [ key: 'val' ]).
......2>   addV('LABEL').
......3>     property('prop', [ key: 'val2' ]).iterate()
gremlin> g.V().valueMap(true)
==>[prop:[[key:val]],id:0,label:LABEL]
==>[prop:[[key:val2]],id:2,label:LABEL]
gremlin> g.V().filter(values('prop').select('key').is('val'))
==>v[0]
gremlin> g.V().filter(values('prop').select('key').is('val2'))
==>v[2]