如何通过Gremlin在Neo4j 1.9RC1中获得关系和相关顶点的顶点
问题描述:
Neo4j将支持2.x版本的树模式(我们不能使用树函数)我们使用1.9RC1。如何通过Gremlin在Neo4j 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; }
}
我想获得树结构的UserModel响应。 如何通过Gremlin完成..
我们使用的是路径函数。
g.v(4582).inE.outV.paths{it}
但是有数据重复的问题。 它返回的路径不是树。 PS:我们正在使用C#。
答
如果你看看tree()是如何实现的,它仅仅是在连接点处聚合的路径()。连接点是相同深度的顶点。因此,您可以根据path()( - 或更老版本的Gremlin中的 - 或paths()的结果)创建自己的树数据结构。让我来解释一下如何通过例子来实现它。如果你有这样一组路径:
[1,2,3,4]
[1,3,5,6]
[1,2,3,5]
然后树表示将是:
4
/
2-3
/ \
1 5
\
3-5-6
智能采用嵌入式包含HashMap的将提供你想要的功能。请查看Pipes 2.x代码库,查看树是如何实现的,并复制(并调整)您的需求。
g.v(4582).inE.outV.paths {it}返回您编写的矩阵。但是有数据重复问题。我将检查HashMaps。谢谢。 – ozz 2013-04-24 17:49:33
Neo4J似乎没有切实可行的办法...但泰坦一切似乎都很好。 @marko泰坦0.3.1的发布日期是什么? (我认为.1意味着生产就绪) – ozz 2013-05-07 11:05:09