当前位置: 首页 > 知识库问答 >
问题:

带有group子句的gremlin横向节点

锺离森
2023-03-14

可以任何人帮助图横向使用gremlin。我有连接的图数据,我需要查询用户联系与关系‘知道’及其传出连接顶点属性。

g.addV().property(id, 'user').as('user').
addV().property(id, 'user1').as('user1').
addV().property(id, 'user2').as('user2').
addV().property(id, 'user3').as('user3').
addV().property(id, 'user4').as('user4').
addV().property(id, 'Industry1').as('Industry1').
addV().property(id, 'Industry2').as('Industry2').
addV().property(id, 'skills1').as('skills1').
addV().property(id, 'skills2').as('skills2').    
addE('KNOWS').from('user').to('user1').
addE('KNOWS').from('user').to('user2').
addE('KNOWS').from('user').to('user3').
addE('KNOWS').from('user').to('user4').
addE('WORKS').from('user1').to('Industry1').
addE('WORKS').from('user2').to('Industry1').
addE('WORKS').from('user2').to('Industry2').
addE('WORKS').from('user3').to('Industry2').
addE('SKILLEDIN').from('user3').to('skills1').
addE('SKILLEDIN').from('user4').to('skills1').
addE('SKILLEDIN').from('user4').to('skills2')

所需的--从用户节点导航获得所有与关系“知道”的传出连接,对于每个连接获得他的行业和技能,输出应该是来自用户的遍历结果

用户1---行业1,技能1用户2---行业1,行业2用户3---行业3,技能1用户4---技能1,技能2

共有1个答案

丁高峯
2023-03-14

我想这就是你想要的输出:

gremlin> g.V('user').out('KNOWS').
......1>   group().
......2>     by(id).
......3>     by(project('industries','skills').
......4>          by(out('WORKS').id().fold()).
......5>          by(out('SKILLEDIN').id().fold()))
==>[user1:[industries:[Industry1],skills:[]],user2:[industries:[Industry1,Industry2],skills:[]],user3:[industries:[Industry2],skills:[skills1]],user4:[industries:[],skills:[skills1,skills2]]]
 类似资料:
  • 问题内容: 我有下表 SQLFiddle 我试图做的是选择三个随机图像,但是要确保没有两个图像具有相同的对象,我试图做的是将GROUP BY和ORDER BY rand()一起执行,但是失败了。它总是给我cat1.jpg,dog1.jpg,box1.jpg(所有路径以1结尾而不是其他路径结尾的图像) 小提琴包括我运行的查询及其运行方式。 问题答案: 您需要的是一个随机聚合函数。通常,当前的RDBM

  • 主要内容:Oracle GROUP BY子句简介,Oracle GROUP BY示例,以下是纠正/补充内容:在本教程中,您将学习如何使用Oracle 子句将行记录分组。 Oracle GROUP BY子句简介 子句在SELECT语句中用于按行或表达式的值将行组合到分组汇总的行中。子句为每个分组返回一行。 子句通常与,,,和之类的集合函数一起使用。在这种情况下,聚合函数返回每个分组的摘要信息。例如,给定几个类别的产品,函数返回每个类别中产品的平均价格。 以下说明了Oracle 子句的语法: 子句出

  • 一个返回聚集值(aggregate values)的查询可以按照一个返回的类或组件(components)中的任何属性(property)进行分组: select cat.color, sum(cat.weight), count(cat) from Cat cat group by cat.color select foo.id, avg(name), max(name) from Foo fo

  • 例如,我想做这样的事情: 新建Select().from(Table).where(“id in?”,list).execute()

  • 记录具有id和名称 带有@Convert的DocumentModel 记录转换器 如果recordIds有多个值(例如:docId=1),即使: 嵌套选择不工作 IN子句有和没有()不工作 子句的成员不工作 导致本机SQL直接无法工作 @公式不工作 而且问题似乎是记录应该是单引号-逗号分隔的,而不仅仅是逗号分隔的,因为它们是字符串。(本机SQL查询在这种情况下工作)

  • 问题内容: 在MySQL中,我观察到尽管没有GROUP BY子句,但在SELECT列表中使用AGGREGATE FUNCTION的语句被执行了。如果这样做,其他RDBMS产品(例如SQL Server)将引发错误。 例如,被执行而没有任何错误,并返回col1,col2的第一行值和col3的所有值之和。以上查询的结果是一行。 谁能告诉我为什么MySQL会发生这种情况? 提前致谢!! 问题答案: 这是