在Apache TinkerPop Gremlin中如何实现分页并获取顶点属性?
解决方案
你可以对分页后的顶点增加属性序列化步骤即可,修改后的查询语句如下:
g.V().hasLabel('person').fold().as('persons','count'). select('persons','count'). by(range(local, 2, 4).unfold().elementMap().fold()). by(count(local))
逻辑说明
- 原有查询中
range(local, 2, 4)返回的是顶点对象列表,默认序列化仅输出ID,需要主动转换为属性结构 - 新增的
unfold().elementMap().fold逻辑:先拆分分页后的顶点列表为单个顶点,逐个调用elementMap()生成包含顶点ID、标签、所有属性的键值对,最后重新组装为列表返回 - 如果你不需要返回ID和标签,仅需要属性字段,可以将
elementMap()替换为valueMap();如果需要valueMap同时返回ID和标签,可写为valueMap(true)
返回示例
调整后的返回结构如下:
{ "persons": [ { "id": "2e6279e5-ad7c-48e3-9527-4972e55ecd24", "label": "person", "name": "张三", "age": 28 }, { "id": "bb01581c-de6f-4c57-92f5-6fe090011279", "label": "person", "name": "李四", "age": 32 } ], "count": 36 }
内容的提问来源于stack exchange,提问作者Thirumal
相关产品推荐
相关产品推荐

