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

社交媒体用例图/小精灵

常献
2023-03-14

考虑instagram提要场景。我想让我关注的人“发布”所有帖子。对于每一个帖子,我都想知道我是否喜欢它,还想知道我关注的其他人中有谁喜欢它(如果有的话)。在gremlin中实现这一点的最佳解决方案是什么(可能避免重复)?

图像清晰

下面只给出了用户2“发布”的帖子。如何在同一查询中获取其他信息?

g.V().has('ID','USER 2').out('posted')

共有1个答案

公子昂
2023-03-14

当您询问有关Gremlin的问题时,尤其是这种复杂性的问题时,最好包含一个提供一些示例数据的Gremlin脚本,如下所示:

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').
......1>   out('follow').
......2>   aggregate('followers').
......3>   out('posted').
......4>   group().
......5>     by('postId').
......6>     by(project('likedBySelf','likedByFollowing').
......7>          by(__.in('liked').where(eq('me')).count()).
......8>          by(__.in('liked').where(within('followers')).values('id').fold()))
==>[post2:[likedBySelf:1,likedByFollowing:[3,4]],post1:[likedBySelf:0,likedByFollowing:[]]]

您找到用户并让他们的追随者将他们保存在带有聚合()的列表中。然后您找到他们带有out('发布')的帖子。要为您的输出获取您的Map结构,您可以对这些“帖子”进行group()。第二个by()调制器使用project()来构建您的内部Map并基本上进行两次遍历,其中第一次使用零或一通过执行count()来表示您的布尔值,第二次返回到我们之前聚合的“追随者”列表以过滤这些。请注意最后使用fold()来将内部遍历的结果减少到列表中的重要作用。

 类似资料:
  • 因此,我想创建一种社交媒体应用程序,并使用fiRest作为主数据库。 目标是创建“facebook”新闻源。 每个用户都有一个朋友列表,每个用户都可以创建帖子。 每个帖子都可以被修改为对应用程序的所有用户或用户朋友可见。所以每个用户都可以向他所有的朋友发布帖子,并向应用程序中的每个人发布帖子。 此外,用户还可以在新闻提要中“保存”他们喜欢的帖子。(类似帖子子集合) 现在在用户的新闻提要中-我如何查

  • 我有一个集合,我的应用程序在其中存储用户的所有帖子,数据结构如下: 现在,我想向我的用户显示这个集合的所有帖子;但是,只有当用户跟随创建帖子的人时,即帖子文档的字段适合。 我知道如果用户只关注一个人,查询集合是很简单的,也就是说,我有一个简单的子句。但是:如果我的用户关注10,000人或更多人呢?我怎么查询呢? 另外,我应该如何存储,即用户跟随的人?使用简单的数组似乎不适合我,但是使用所有其他选项

  • 当用户导航到Likes或Comments屏幕时,他/她将分别看到用户指定帖子的Likes或Comments列表。 用这种结构能正确处理这两种情况吗?或者将评论和喜欢集合放在/posts/{userId}/userposts/{postId}/(也可以作为子集合)中会更好 Firestore可以同时执行“多个集合查询”吗?以便在我的“交互”屏幕中,我可以从按日期排序的不同集合中获取所需的数据 我很感

  • 我有一些社交媒体图标使用引导字体-很棒的图标。我的问题是图标没有居中。 这里是我的代码,它的大部分是从一个在线来源复制和粘贴。 我也希望它适用于移动以及。我已经玩了一些边距和文本对齐,但似乎没有什么工作如预期。感谢任何帮助。

  • Bluemix;节点。js;SSO;CWOA0062E 此时的URL是:https://mzsso-yyyyyyyyyyyy.iam.ibmcloud.com/idaas/oidc/endpoint/default/authorize?response_type=code (请注意,xxxxx、yyyy、zzzzz等是我的屏蔽私有标识符。。。 1)错误消息:CWOAU0062E:OAuth服务提供

  • 在我的应用程序中,我让用户注册/登录他们的社交媒体帐户,即。领英、谷歌和脸书。 我的问题是,一旦我获得了用户的个人资料图片网址,我应该在我的系统中保存图像,还是允许我简单地保存网址,让图像从用户的社交媒体帐户中提供?我甚至不确定我是否被允许保存这张照片,因为从技术上来说,它可能是领英、谷歌或脸书的财产。