用 Gremlin 查询将边和属性组合

4
我有一个数据架构,用户可以在其中评价产品。 userproduct 是顶点,reviewsMANY2MANY 关系,连接了 usersproductsreviews 包含标题和正文等属性。
我想编写一个查询以获取某个产品的所有评论,以及撰写评论的用户。我可以使用以下语句获取评论,但不知道如何添加所有用户属性。
g.({product}).inE("reviews").values()

我该如何获取每个评论的用户信息?
1个回答

8
你可以这样做:

你可以像这样操作:

l = g.V(pvid).                          // start with a product vertex id
      inE("reviews").as("r").           // label the review edges
      outV().as("u").                   // label the users
      select("r", "u").by(valueMap()).  // properties map
      toList()                          // iterate traversal into a list

这将返回一个地图列表。每个地图都有2个键,ru,对应于select("r", "u")步骤。然后地图中r的值是评论的属性。类似地,地图中u的值是用户的属性。
相关文档

这已经非常有帮助了。不知道你是否知道如何使每个组合下没有记录,例如所有的“u”都嵌套在它们各自的“r”下面?作为参考,我的代码看起来更像这样:g.V().hasLabel('org').as('o').outE('orgStore').inV().as('s').select('o','s').by(valueMap()) 但是我想要的是一个'o'实例,其下面有所有的's'。 - Steve Eggering

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接