为了账号安全,请及时绑定邮箱和手机立即绑定

gremlin-随机选择一个项目

gremlin-随机选择一个项目

临摹微笑 2019-07-17 18:55:46
gremlin-随机选择一个项目将我视为“用户”1。查询的目的是让我所跟踪的人“张贴”这些帖子,并对每一篇文章进行检查:是否被我喜欢我所追随的其他人是否喜欢它,如果是的话随机选择其中一个用户返回样本数据:g.addV('user').property('id',1).as('1')   addV('user').property('id',2).as('2').   addV('user').property('id',3).as('3').   addV('user').property('id',4).as('4').   addV('post').property('postId','post1').as('p1').   addV('post').property('postId','post2').as('p2').   addE('follow').from('1').to('2').   addE('follow').from('1').to('3').   addE('follow').from('1').to('4').   addE('posted').from('2').to('p1').   addE('posted').from('2').to('p2').   addE('liked').from('1').to('p2').   addE('liked').from('3').to('p2').   addE('liked').from('4').to('p2').iterate()查询:(如下所示:用于社交媒体用例的图/Gremlin) g.V().has('id',1).as('me').out('follow').aggregate('followers').out('posted').group().by('postId').by(project('likedBySelf','likedByFollowing').by(__.in('liked').where(eq('me')).count()).by(__.in('liked').where(within('followers')).order().by(shuffle).values('id').fold()))产出:[post1:[likedBySelf:0,likedByFollowing:[]],post2:[likedBySelf:1,likedByFollowing:[4,3]]]这个查询可以对值进行洗牌,但是显示了所有的‘id’,现在我只想选择第一个‘id’。使用.Next()而不是.折叠()会导致异常java.util.NoSuchElementException。是否可以随机选择,而不必先评估所有的横穿,然后再对它们进行洗牌?期望产出:[post1:[likedBySelf:0,likedByFollowing:[]],post2:[likedBySelf:1,likedByFollowing:[3]]]或[post1:[likedBySelf:0,likedByFollowing:[]],post2:[likedBySelf:1,likedByFollowing:[4]]]
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 446 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信