Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
Ruby on rails NEO4j-Cypher-活动提要-多个左连接,透视表/交叉表,用于可选节点?_Ruby On Rails_Neo4j_Cypher - Fatal编程技术网

Ruby on rails NEO4j-Cypher-活动提要-多个左连接,透视表/交叉表,用于可选节点?

Ruby on rails NEO4j-Cypher-活动提要-多个左连接,透视表/交叉表,用于可选节点?,ruby-on-rails,neo4j,cypher,Ruby On Rails,Neo4j,Cypher,我如何在cypher中使用this left join,但为每个活动返回一行?(假设每个活动只有一个可选目标记录和一个可选源记录-两者都可以存在或不存在,等等) 当然,如果存在一个源和目标,我不需要两行,因此这将通过交叉表/透视表查询汇总,因此最后一行将是 person...activity...(optional source node)...(optional target node) 我想返回person、activity,如果源行和目标行存在,还可以选择返回它们——如果不存在,则

我如何在cypher中使用this left join,但为每个活动返回一行?(假设每个活动只有一个可选目标记录和一个可选源记录-两者都可以存在或不存在,等等)

当然,如果存在一个源和目标,我不需要两行,因此这将通过交叉表/透视表查询汇总,因此最后一行将是

person...activity...(optional source node)...(optional target node)   
我想返回person、activity,如果源行和目标行存在,还可以选择返回它们——如果不存在,则只返回person和activity。。我希望每个活动一行

请参见下面的图表示例:

以下是我对如何实现这一目标的猜测

start n=node(1)
match n-[act_rel]->activity-[?sourcerel]-(source)
with n
match n-[act_rel]->activity-[?targetrel]-(target)
return n, activity, source.description! as description, target.description! as target_description

基本上,我想为每个活动在一行上带回一个人的活动列表,其中包含可选的源节点和目标节点——这可以通过Cyhper单独实现吗?(使用ROR/REST)。上面的密码查询有什么问题?或者我必须从cyper中获取人员和活动数据,然后通过代码逐个查找节点,这对性能有很大影响。

您可以使用逗号指定模式的多个部分:

start n=node(1)
match n-[:act_rel]->activity-[?:sourcerel]-source, activity-[?:targetrel]-target
return n, activity, source.description as description, target.description as target_description

有意义吗?

啊。。因此,这些不必全部链接在一个匹配中,而是可以由注释分隔的多个描述。。非常感谢。请参见中的图表示例
start n=node(1)
match n-[:act_rel]->activity-[?:sourcerel]-source, activity-[?:targetrel]-target
return n, activity, source.description as description, target.description as target_description