Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j:如何将多个密码组合成一个?_Neo4j_Cypher - Fatal编程技术网

Neo4j:如何将多个密码组合成一个?

Neo4j:如何将多个密码组合成一个?,neo4j,cypher,Neo4j,Cypher,我有一个Neo4j数据库,带有常用的社交图。我正在尝试创建一个活动提要(用户X跟踪了您,用户Y喜欢您的消息等) 有用户和消息节点 和后面,喜欢和提到关系,每个关系都在属性上创建了一个 (实际上,我还需要一些关系,但为了简单起见,我将其保留为3作为示例) 我试图返回活动事件列表,按日期分页和排序。每个活动都会有发生的日期、与之相关的用户和消息(如果适用) 我对每种活动类型/关系都有这样的功能,但我很难将它们组合成一个密码/响应 密码分别是 喜欢 MATCH (me:User {username:"

我有一个Neo4j数据库,带有常用的社交图。我正在尝试创建一个活动提要(用户X跟踪了您,用户Y喜欢您的消息等)

用户
消息
节点

后面
喜欢
提到
关系,每个关系都在属性上创建了一个

(实际上,我还需要一些关系,但为了简单起见,我将其保留为3作为示例)

我试图返回活动事件列表,按日期分页和排序。每个活动都会有发生的日期、与之相关的用户和消息(如果适用)

我对每种活动类型/关系都有这样的功能,但我很难将它们组合成一个密码/响应

密码分别是

喜欢

MATCH (me:User {username:"matt"})-[:Owner]->(msg:Message)<-[likes:Likes]-(user:User) RETURN user, msg, likes.created_on ORDER BY likes.created_on LIMIT 25
MATCH (me:User {username:"matt"})<-[mentions:Mentions]-(msg:Message)-[:Owner]-(user:User) RETURN user, msg, mentions.created_on ORDER BY mentions.created_on LIMIT 25
但是我现在完全迷路了!这似乎根本没有返回任何结果

关于如何将上述密码组合成一个请求,您有什么建议/建议吗?

您可以使用union 这样您就可以得到所有结果

您可以使用union
这样你就能得到所有的结果

试试这样的方法

MATCH (me:User {username:"matt"})
OPTIONAL MATCH (me)-[:Owner]->(msg:Message)<-[likes:Likes]-(user:User) 
WHERE likes.created_on > x-days-ago
WITH me, msg, user, likes.created_on as created_on
ORDER BY created_on LIMIT 25
WITH me, collect(distinct {user:user, created_on:created_on}) as activities
OPTIONAL MATCH (me)<-[mentions:Mentions]-(msg:Message)-[:Owner]->(user:User) 
WITH me, msg, user, mentions.created_on as created_on, activities
ORDER BY created_on LIMIT 25
WITH me, activities + collect(distinct {user:user, created_on:created_on}) as activities
OPTIONAL MATCH (me)<-[follows:Follows]-(user:User) 
WITH me, msg, user, follows.created_on as created_on, activities
ORDER BY created_on LIMIT 25
UNWIND (activities + collect(distinct {user:user, created_on:created_on})) as activity
RETURN activity
ORDER BY activity.created_on LIMIT 25
MATCH(me:User{username:“matt”})
可选匹配(me)-[:Owner]->(msg:Message)x-days-ago
对于我,msg,user,likes.created_on作为created_on
根据限额25创建的订单
与我一起,收集(不同的{user:user,created_on:created_on})作为活动
可选匹配(me)(用户:用户)
与我一起,msg,user,提及.created_on作为created_on,activities
根据限额25创建的订单
对于我来说,活动+收集(不同的{user:user,created_on:created_on})作为活动

可选匹配(me)尝试类似的操作

MATCH (me:User {username:"matt"})
OPTIONAL MATCH (me)-[:Owner]->(msg:Message)<-[likes:Likes]-(user:User) 
WHERE likes.created_on > x-days-ago
WITH me, msg, user, likes.created_on as created_on
ORDER BY created_on LIMIT 25
WITH me, collect(distinct {user:user, created_on:created_on}) as activities
OPTIONAL MATCH (me)<-[mentions:Mentions]-(msg:Message)-[:Owner]->(user:User) 
WITH me, msg, user, mentions.created_on as created_on, activities
ORDER BY created_on LIMIT 25
WITH me, activities + collect(distinct {user:user, created_on:created_on}) as activities
OPTIONAL MATCH (me)<-[follows:Follows]-(user:User) 
WITH me, msg, user, follows.created_on as created_on, activities
ORDER BY created_on LIMIT 25
UNWIND (activities + collect(distinct {user:user, created_on:created_on})) as activity
RETURN activity
ORDER BY activity.created_on LIMIT 25
MATCH(me:User{username:“matt”})
可选匹配(me)-[:Owner]->(msg:Message)x-days-ago
对于我,msg,user,likes.created_on作为created_on
根据限额25创建的订单
与我一起,收集(不同的{user:user,created_on:created_on})作为活动
可选匹配(me)(用户:用户)
与我一起,msg,user,提及.created_on作为created_on,activities
根据限额25创建的订单
对于我来说,活动+收集(不同的{user:user,created_on:created_on})作为活动

可选匹配(me)谢谢,我使用了UNION方法,但是限制和顺序应用于每个查询,而不是整个查询。显然,目前还不支持对联合查询应用总体限制(),但到目前为止……也许可以询问neo4j他们将实现它。或者在代码后处理hanks,我使用了UNION方法,但是限制和顺序应用于每个查询,而不是整个查询。显然,目前还不支持对联合查询应用总体限制(),但到目前为止……也许可以询问neo4j他们将实现它。或者以后用代码来做
MATCH (me:User {username:"matt"})
OPTIONAL MATCH (me)-[:Owner]->(msg:Message)<-[likes:Likes]-(user:User) 
WHERE likes.created_on > x-days-ago
WITH me, msg, user, likes.created_on as created_on
ORDER BY created_on LIMIT 25
WITH me, collect(distinct {user:user, created_on:created_on}) as activities
OPTIONAL MATCH (me)<-[mentions:Mentions]-(msg:Message)-[:Owner]->(user:User) 
WITH me, msg, user, mentions.created_on as created_on, activities
ORDER BY created_on LIMIT 25
WITH me, activities + collect(distinct {user:user, created_on:created_on}) as activities
OPTIONAL MATCH (me)<-[follows:Follows]-(user:User) 
WITH me, msg, user, follows.created_on as created_on, activities
ORDER BY created_on LIMIT 25
UNWIND (activities + collect(distinct {user:user, created_on:created_on})) as activity
RETURN activity
ORDER BY activity.created_on LIMIT 25