如何在Gremlin中检索多个多属性?
我有一个要写入图表的Person对象:
gts.addV(newId).label('Person')
.property(single, 'name', 'Alice')
.property(set, 'email', 'alice1@example.invalid')
.property(set, 'email', 'alice2@example.invalid')
现在我想检索顶点的内容。正如文档所述,elementMap
不起作用,因为它只为多个属性返回单个属性值。我尝试了values('name', 'email')
,但返回了扁平列表中的所有属性,而不是我预期的嵌套结构:
['Alice', 'alice2@example.invalid', 'alice1@example.invalid']
我尝试了values
、project
和as/select
的各种组合,但始终得到空结果、平面列表或多个属性的单个值。
如何查询顶点以获得类似的结果?
['Alice', ['alice2@example.invalid', 'alice1@example.invalid']]
或
[name:'Alice', email:['alice2@example.invalid', 'alice1@example.invalid']]
解决方案
如果您只是希望返回值的映射,则可以使用valueMap()
step:
g.V(newId).valueMap('name', 'email')
返回:
[name:[Alice],email:[alice1@example.invalid,alice2@example.invalid]]
如果只想返回值,可以通过添加select(values)
:
g.V().valueMap('name', 'email').select(values)
返回
[[Alice],[alice1@example.invalid,alice2@example.invalid]]
相关文章