Gremlin按顶点统计边数:统计每个People顶点关联的Purchases边数量
Gremlin查询实现统计每人购买边数量
适用场景
顶点类型包含People、Items,边类型包含Likes、Purchases,要求统计所有People顶点的Purchases出边总数量,边数为0的用户也要输出。
直接输出目标格式的查询语句
g.V().hasLabel('People') .project('用户名', '购买边数') .by('name') .by(outE('Purchases').count()) .map(select(values).join(', '))
说明
- 上述语句可以直接输出你要求的
姓名, 数量格式的结果,逻辑优先遍历所有People类型顶点,不会遗漏边数为0的用户,不需要额外补全处理 - 如果你使用的图数据库Gremlin实现对
join支持不佳,可以使用下面的结构化查询语句,得到结果后自行拼接即可:g.V().hasLabel('People') .project('name', 'purchase_count') .by('name') .by(coalesce(outE('Purchases').count(), constant(0))) - 语句中的
by('name')需要替换为你People顶点上存储姓名的实际属性名,比如如果属性键为username就改成by('username') coalesce步骤用于兼容特殊场景下统计值为空的问题,确保边数为0时一定会返回0,大部分主流图数据库不加这一步也能正常返回0
内容的提问来源于stack exchange,提问作者Grady Kurpasi
相关产品推荐
相关产品推荐

