如何从 gremlin 中的多个顶点获取属性

How to get properties from multiple vertexes in gremlin

如何从 gremlin 中的多个顶点获取属性。

从上图中,我需要从 user 收集 'name',从 email 顶点收集 email_id,从 phone_number 收集 phone 数字] 顶点。是否可以在一次查询中收集所有属性?

我尝试了以下查询,但它 returns emailphone_number 作为单独的项目

g.V().hasLabel('user').as('u').outE('owns')
.inV().hasLabel('email', 'phone_number').as('e', 'p').select('u', 'e', 'p').by(elementMap('name')).by(elementMap()).by(elementMap())

输出

{'u': {<T.id: 1>: '124848d5-f387-48eb-bbb7-ad193ef6070a', <T.label: 4>: 'user', 'name': 'Thirumal'}, 'e': {<T.id: 1>: '922f4ac1-9c6d-40fa-bac2-682e0f01673a', <T.label: 4>: 'phone_number', 'phone_number': '+918973697871'}, 'p': {<T.id: 1>: '922f4ac1-9c6d-40fa-bac2-682e0f01673a', <T.label: 4>: 'phone_number', 'phone_number': '+918973697871'}}

{'u': {<T.id: 1>: '124848d5-f387-48eb-bbb7-ad193ef6070a', <T.label: 4>: 'user', 'name': 'Thirumal'}, 'e': {<T.id: 1>: '2c3f90a4-d8bd-4cf5-9ff0-d4e3a6cf1190', <T.label: 4>: 'email', 'email': 'thirumal@enkindletech.com'}, 'p': {<T.id: 1>: '2c3f90a4-d8bd-4cf5-9ff0-d4e3a6cf1190', <T.label: 4>: 'email', 'email': 'thirumal@enkindletech.com'}}

此类问题通常由 project() 处理:

g.V().hasLabel('user').
  project('name','email','phone').
    by('name').
    by(out('owns').hasLabel('email').values("email")).
    by(out('owns').hasLabel('phone_number').values('phone_number'))