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; }
}
我想获得树形结构的UserModel响应。 如何通过Gremlin来完成..
我们正在使用路径功能。
g.v(4582).inE.outV.paths{it}
但是它存在数据重复问题。 它返回的路径不是树。
PS:我们正在使用C#。
答案 0 :(得分:2)
如果你看一下tree()的实现方式,它只是在连接点聚合的path()。连接点是相同深度的顶点。因此,您可以从path()的结果(旧版本的Gremlin中的 - 或paths())创建自己的树数据结构。让我解释一下如何通过示例实现它。如果您有一组这样的路径:
[1,2,3,4]
[1,3,5,6]
[1,2,3,5]
然后树表示将是:
4
/
2-3
/ \
1 5
\
3-5-6
智能使用嵌入式HashMaps将提供您所需的功能。请查看Pipes 2.x代码库,了解Tree的实现方式,并根据需要进行复制(和调整)。