0

我正在尝试获取“朋友推荐”查询。节点具有下一个序列 (Node) - [FRIEND] - (Node) - [INFO] - (P_info) ,其中每个节点都与INFO关联的节点有关系P_info。我可以获得一个节点的推荐朋友列表,但我需要将这些P_info键包含到推荐的朋友键中才能一起返回。

这是我目前的查询:

match (person:Account{_id:"185860469"})
match (person)-[:FRIEND]-()-[:FRIEND]-(potentialFriend)
where not (person)-[:FRIEND]-(potentialFriend)
match (potentialFriend)-[:INFO]-(information:P_info)
with person,potentialFriend, COUNT(*) AS friendsInCommon,information
where friendsInCommon > 5
return {user:person,recommend:collect(potentialFriend)},{info:information}

但是“info”的信息在响应时没有与“potentialFriend”相关联。我想做这样的事情: return {user:person,collect(potentialFriend,information)}但我不知道这是否可能,cypher 说:

函数“收集”的参数太多

提前致谢。

4

1 回答 1

0

我做到了,只是添加了一个额外的WITH。我留下答案以防有人帮助

WITH person,{friend_id:potentialFriend._id,friend_name:information.name} AS Recommended_friend
RETURN person._id,collect(Recommended_friend)

这将返回一个带有人员 ID 的唯一响应和一个包含所有为他推荐的朋友的数组。

于 2019-02-15T18:58:27.713 回答