Gremlin - 从 valueMap 中提取 T.id 和 T.label
Gremlin - extracting T.id and T.label from valueMap
这个问题与 相关,Kelvin Lawrence 回答得非常有帮助,想 post 它作为一个单独的问题,因为第一个问题已经很好地回答了。
来自这个查询:
g.V('a2661f57-8aa7-4e5c-9c89-55cf9b7e4cf8').as('self')
.sideEffect(out('rated').store('movies'))
.out('friended')
.group()
.by(valueMap(true).by(unfold()))
.by(out('rated').where(within('movies')).count())
.order(local)
.by(values,desc)
.unfold()
.select(keys)
我得到这个结果:
1 {<T.id: 1>: 'fdc45bd3-be08-4716-b20f-b4f04987c5e0', <T.label: 4>: 'user', 'username': 'elin102dev', 'name': 'elin obrien', 'avatarUrl': 'public/avatars/fdc45bd3-be08-4716-b20f-b4f04987c5e0.jpg'}
2 {<T.id: 1>: 'bbf1b0db-68cc-41f1-8c7a-5fd77b698e39', <T.label: 4>: 'user', 'username': 'iris', 'name': 'Iris Ebert', 'avatarUrl': 'public/avatars/bbf1b0db-68cc-41f1-8c7a-5fd77b698e39.jpg'}
3 {<T.id: 1>: '34c2ea80-4f84-4652-a7c3-48ce43d9aea7', <T.label: 4>: 'user', 'username': 'iris103dev', 'name': 'iris obrien', 'avatarUrl': 'public/avatars/34c2ea80-4f84-4652-a7c3-48ce43d9aea7.jpg'}
我想将响应中的 T.id 和 T.label 值转换为简单的“id”和“label”。 Kelvin,如果你正在阅读这篇文章,我尝试将以下内容附加到上面的查询中,但它 returns 0 个结果:
.select('id', 'label', 'username', 'name', 'avatarUrl')
.by(T.id)
.by(T.label)
.by('username')
.by('name')
.by('avatarUrl')
.toList()
我需要更多的帮助来解决这个问题,但没有取得太大的成功。提前致谢。
无法在查询中执行 select(T.id)
。在代码中,如果返回 map
,则可以访问 T.id
字段。对于这种情况,最好延迟获取属性,直到您最终需要它们。您可以尝试像这样重写查询。
g.V('a2661f57-8aa7-4e5c-9c89-55cf9b7e4cf8').as('self').
sideEffect(out('rated').store('movies')).
out('friended').
group().
by().
by(out('rated').where(within('movies')).count()).
order(local).
by(values,desc).
unfold().
select(keys).
project('id','label','username').
by(id).
by(label).
by('username')
这个问题与
来自这个查询:
g.V('a2661f57-8aa7-4e5c-9c89-55cf9b7e4cf8').as('self')
.sideEffect(out('rated').store('movies'))
.out('friended')
.group()
.by(valueMap(true).by(unfold()))
.by(out('rated').where(within('movies')).count())
.order(local)
.by(values,desc)
.unfold()
.select(keys)
我得到这个结果:
1 {<T.id: 1>: 'fdc45bd3-be08-4716-b20f-b4f04987c5e0', <T.label: 4>: 'user', 'username': 'elin102dev', 'name': 'elin obrien', 'avatarUrl': 'public/avatars/fdc45bd3-be08-4716-b20f-b4f04987c5e0.jpg'}
2 {<T.id: 1>: 'bbf1b0db-68cc-41f1-8c7a-5fd77b698e39', <T.label: 4>: 'user', 'username': 'iris', 'name': 'Iris Ebert', 'avatarUrl': 'public/avatars/bbf1b0db-68cc-41f1-8c7a-5fd77b698e39.jpg'}
3 {<T.id: 1>: '34c2ea80-4f84-4652-a7c3-48ce43d9aea7', <T.label: 4>: 'user', 'username': 'iris103dev', 'name': 'iris obrien', 'avatarUrl': 'public/avatars/34c2ea80-4f84-4652-a7c3-48ce43d9aea7.jpg'}
我想将响应中的 T.id 和 T.label 值转换为简单的“id”和“label”。 Kelvin,如果你正在阅读这篇文章,我尝试将以下内容附加到上面的查询中,但它 returns 0 个结果:
.select('id', 'label', 'username', 'name', 'avatarUrl')
.by(T.id)
.by(T.label)
.by('username')
.by('name')
.by('avatarUrl')
.toList()
我需要更多的帮助来解决这个问题,但没有取得太大的成功。提前致谢。
无法在查询中执行 select(T.id)
。在代码中,如果返回 map
,则可以访问 T.id
字段。对于这种情况,最好延迟获取属性,直到您最终需要它们。您可以尝试像这样重写查询。
g.V('a2661f57-8aa7-4e5c-9c89-55cf9b7e4cf8').as('self').
sideEffect(out('rated').store('movies')).
out('friended').
group().
by().
by(out('rated').where(within('movies')).count()).
order(local).
by(values,desc).
unfold().
select(keys).
project('id','label','username').
by(id).
by(label).
by('username')