如何通过Gremlin获得Neo4j 1.9RC1中具有关系和相关顶点的顶点

如何通过Gremlin获得Neo4j 1.9RC1中具有关系和相关顶点的顶点,neo4j,graph-databases,gremlin,neo4jclient,Neo4j,Graph Databases,Gremlin,Neo4jclient,Neo4j将在2.x版本中支持树模式。(我们无法使用树函数)我们使用的是1.9RC1 我需要获得用户的追随者和朋友 public class User { public long Id { get; set; } public string Name { get; set; } ............... } public class UserModel { public long Id { get; set; } public string Nam

Neo4j将在2.x版本中支持树模式。(我们无法使用树函数)我们使用的是1.9RC1

我需要获得用户的追随者和朋友

public class User
{
    public long Id { get; set; }
    public string Name { get; set; }
    ...............
}

public class UserModel
{
    public long Id { get; set; }
    public string Name { get; set; }
    public string DetailedInformation { get; set; }
    public IEnumerable<UserModel2> Followers { get; set; }
    public IEnumerable<UserModel2> Friends{ get; set; }
}

public class UserModel2
{
    public long Id { get; set; }
    public string Name { get; set; }
}
但它存在数据重复问题。 它返回路径而不是树

PS:我们使用的是C#。

如果你看看tree()是如何实现的,它只是在连接点聚合的path()。连接点是相同深度的顶点。因此,您可以根据path()的结果创建自己的树数据结构(在较旧版本的Gremlin中为-path()。让我通过示例来解释如何实现它。如果您有一组这样的路径:

[1,2,3,4]
[1,3,5,6]
[1,2,3,5]
然后,树表示将是:

      4
     /
  2-3
 /   \
1     5
 \
  3-5-6

智能地使用嵌入式哈希映射将提供您想要的功能。请查看Pipes 2.x代码库,了解树是如何实现的,并根据您的需要进行复制(和调整)。

g.v(4582).inE.outV.paths{it}返回您编写的矩阵。但存在数据重复问题。我将检查HashMaps。谢谢。看来用Neo4J实现这一点没有实际的方法。。。但是泰坦的一切似乎都很好@marko titan 0.3.1的发布日期是什么时候?(我认为。1意味着生产准备就绪)
      4
     /
  2-3
 /   \
1     5
 \
  3-5-6