【发布时间】:2014-07-11 16:26:39
【问题描述】:
我对 Neo4j、Neo4jClient 和 Cypher Query 非常陌生。 我正在实现图形数据模型和算法。所以,我在我的 Neo4j 图形数据库上有自己的自我网络。 这是我正在尝试检索指定用户的自我网络的密码查询。
MATCH(user:User {userID : '1'})-[:ego1*]->(friend)-[:LATEST_ACTIVITY]->(latest_activity)-[:NEXT*]->(next_activity)
RETURN friend, latest_activity, next_activity
结果如下: 所以,你看,顺序是:2 3 4 (userID)
这是我用 Neo4jClient 转换的代码
var query = graphClient.Cypher.Match("(user:User {userID : '1'})-[:ego1*]->(friend)-[:LATEST_ACTIVITY]->(latest_activity)-[:NEXT*]->(next_activity)").
Return((friend, latest_activity, next_activity) => new
{
friends = friend.As<User>(),
latest_activity = latest_activity.As<Activity>(),
next_activities = next_activity.CollectAs<Activity>()
}).Results;
List<User> friendList = new List<User>();
List<List<Activity>> activities = new List<List<Activity>>();
List<Activity> activity, tmp;
foreach (var item in query)
{
friendList.Add(item.friends);
Console.Write("UserID: " + item.friends.userID + ". Activities: ");
activity = new List<Activity>();
activity.Add(item.latest_activity);
Console.Write(item.latest_activity.timestamp);
foreach (var i in item.next_activities)
{
activity.Add(i.Data);
Console.Write(i.Data.timestamp);
}
activities.Add(activity);
Console.WriteLine();
}
这是上面代码的结果:
顺序是 3 2 4 (userID) 你看。
能否请您解释一下原因并告诉我如何解决?
感谢您的帮助。
【问题讨论】:
标签: neo4j cypher neo4jclient