如何在 Apache TinkerPop Gremlin 中使用分页?
How to use pagination in Apache TinkerPop Gremlin?
如何在apache tinker pop gremlin
中使用pagination
?试图同时获得 count
和 vertex properties
g.V().hasLabel('person').fold().as('persons','count').
select('persons','count').
by(range(local, 2, 4)).
by(count(local))
输出:-
{'persons': [v[2e6279e5-ad7c-48e3-9527-4972e55ecd24],
v[bb01581c-de6f-4c57-92f5-6fe090011279]], 'count': 36}
如何获得 properties of vertex
而不仅仅是 T.id
?
在fold()
之前添加elementMap()
g.V().hasLabel('persons').elementMap().fold().as('persons','count').
select('persons','count').
by(range(local, 2, 4)).
by(count(local))
添加另一个答案只是为了指出可能的性能优化。如果图中有很多人,具体化所有属性然后只选择几个属性可能会给查询引擎带来很多浪费的工作。在查询中尽可能晚地具体化结果通常更好。这是对另一个答案的小改写。
g.V().hasLabel('persons').fold().as('persons','count').
select('persons','count').
by(range(local, 2, 4).unfold().elementMap().fold()).
by(count(local))
当然,我假设您有一个更复杂的场景,因为所示示例根本不需要 fold
。您可以只使用 union
步骤或其他聚合结果的方法。
g.V().hasLabel('person').
union(range(2,4).elementMap(),count()).
fold()
如何在apache tinker pop gremlin
中使用pagination
?试图同时获得 count
和 vertex properties
g.V().hasLabel('person').fold().as('persons','count').
select('persons','count').
by(range(local, 2, 4)).
by(count(local))
输出:-
{'persons': [v[2e6279e5-ad7c-48e3-9527-4972e55ecd24],
v[bb01581c-de6f-4c57-92f5-6fe090011279]], 'count': 36}
如何获得 properties of vertex
而不仅仅是 T.id
?
在fold()
elementMap()
g.V().hasLabel('persons').elementMap().fold().as('persons','count').
select('persons','count').
by(range(local, 2, 4)).
by(count(local))
添加另一个答案只是为了指出可能的性能优化。如果图中有很多人,具体化所有属性然后只选择几个属性可能会给查询引擎带来很多浪费的工作。在查询中尽可能晚地具体化结果通常更好。这是对另一个答案的小改写。
g.V().hasLabel('persons').fold().as('persons','count').
select('persons','count').
by(range(local, 2, 4).unfold().elementMap().fold()).
by(count(local))
当然,我假设您有一个更复杂的场景,因为所示示例根本不需要 fold
。您可以只使用 union
步骤或其他聚合结果的方法。
g.V().hasLabel('person').
union(range(2,4).elementMap(),count()).
fold()