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
Graph CYPHER存储计数()-用于进一步使用的值_Graph_Neo4j_Cypher - Fatal编程技术网

Graph CYPHER存储计数()-用于进一步使用的值

Graph CYPHER存储计数()-用于进一步使用的值,graph,neo4j,cypher,Graph,Neo4j,Cypher,我想在具有一个或多个共同点的节点之间创建一个关系,并想将共同点的计数设置为关系中的属性 例如:在电影教程图中,我想在一起在同一部电影中演出的演员之间创建一个关系,并将他们一起演出的电影的集合计数作为关系中的一个属性 对于基本计数,本教程提供了一个查询: MATCH (n)-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors) RETURN n.name, coActors.name, count(*) AS Strength ORDER BY Streng

我想在具有一个或多个共同点的节点之间创建一个关系,并想将共同点的计数设置为关系中的属性

例如:在电影教程图中,我想在一起在同一部电影中演出的演员之间创建一个关系,并将他们一起演出的电影的集合计数作为关系中的一个属性

对于基本计数,本教程提供了一个查询:

MATCH (n)-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors)
RETURN n.name, coActors.name, count(*) AS Strength ORDER BY Strength DESC
这给了我一个2个名字的列表,以及他们一起在电影中扮演的次数f.e.基努·里夫斯,凯莉·安妮·莫斯,Strength:3->图中有3部矩阵电影

现在我想在这些对之间创建一个关系,并将强度值设置为其中的一个属性。 我可以创建如下关系:

MATCH (a)-[:ACTED_IN]->(p)<-[:ACTED_IN]-(b) MERGE (a)-[r:ACTED_WITH]->(b)

“合并”确保只创建了一个关系,但我无法让计数的东西与创建一起工作。

我不确定您想要什么,但可能是这样的:

  MATCH (a)-[:ACTED_IN]->(m)<-[:ACTED_IN]-(b) 
   WITH  a,b, collect(m) AS movies ORDER BY size(movies)  DESC
   MERGE (a)-[r:ACTED_WITH]-(b)
   ON CREATE SET r.Strength=SIZE(movies)
可以使用密码在匹配的节点上设置属性。如果您尝试在子句中设置它,那么merge将把键视为唯一标识符,如果还没有一个键与该特定值存在关系,则会创建一个新的关系

MATCH (a)-[:ACTED_IN]->(p)<-[:ACTED_IN]-(b)
MERGE (a)-[r:ACTED_WITH]->(b)
// reduce matched set to one row of data
WITH DISTINCT a, b, r, COUNT(p) as strength, COLLECT(p) as movies
// set r
SET r.strength = strength
// Return everything to verify above results
RETURN *

设置将覆盖以前的任何值。如果只想在创建关系时设置它,则可以使用或匹配。

这完全不起作用。它在某种程度上只创造了一种演员之间的关系:只合作过一部电影。不过还是谢谢你,你确定吗?下面的查询匹配a-[r:ACTED_WITH]->b返回a.name,r.Strength,b.name按r.Strength顺序。Strength DESC返回一些结果,如下面的Laurence Fishburne 3 Keanu ReevesYep,我试过了,结果正如我上面所描述的。更新:可以删除collectpasmovies子句,因为它没有被使用,导致查询需要更多time@Konster该位仅用于验证目的。验证查询是否正确后,可以删除该查询和返回位。