【问题标题】:Gremlin query to combine edge with propertyGremlin 查询以将边缘与属性结合起来
【发布时间】:2016-07-09 01:09:04
【问题描述】:

我有一个数据架构,用户可以在其中查看产品。 userproduct 是顶点,reviewsusersproducts 之间的 MANY2MANY 关系。 reviews 具有标题和正文等边缘属性。

我想编写一个查询来获取产品的所有评论,以及撰写评论的用户。我可以使用以下方法获得评论,但我不知道如何添加所有用户属性。

g.({product}).inE("reviews").values()

我怎样才能获得每条评论的用户信息?

【问题讨论】:

    标签: gremlin


    【解决方案1】:

    你可以这样做:

    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 的值就是review 的属性。同样,地图中u 的值是用户的属性。

    相关文档

    【讨论】:

    • 这已经非常有用了。碰巧,您是否知道如何做到这一点,以使每个组合都没有记录。就像所有的“u”都嵌套在各自的“r”下?作为参考,我的看起来更像这样:g.V().hasLabel('org').as('o').outE('orgStore').inV().as('s').select('o','s').by(valueMap()) 但不是为每个 's' 多次返回相同的 'o',我想要一个 'o' 的实例,所有的 's' 都在下面。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2021-02-03
    • 1970-01-01
    相关资源
    最近更新 更多