Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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这样的图形数据库。为了进行评估,我们需要知道neo4j中是否可以使用特定的邻域聚合查询。 这是我们正在思考的图形设计。 我们有两种节点,如下所示 -使用者 -电影 在用户节点和电影节点之间只存在一条边。如果用户已对电影进行分级,则存在一个节点 我们想编写一个查询,根据我们对邻居(即用户)所做的聚合计算所有电影的星级 e、 g用户A将电影m1评级为2,m2评级为3 用户B将电影m1评级为1,m3评级为5 因此,结果集将是 m1 - (2+1)/2 =

我们正在评估是否在我们的项目中使用像neo4j这样的图形数据库。为了进行评估,我们需要知道neo4j中是否可以使用特定的邻域聚合查询。 这是我们正在思考的图形设计。 我们有两种节点,如下所示 -使用者 -电影

在用户节点和电影节点之间只存在一条边。如果用户已对电影进行分级,则存在一个节点

我们想编写一个查询,根据我们对邻居(即用户)所做的聚合计算所有电影的星级

e、 g用户A将电影m1评级为2,m2评级为3 用户B将电影m1评级为1,m3评级为5

因此,结果集将是

m1 - (2+1)/2 = 1.5
m2 - 3/1 = 3
m3 - 5/1 = 5
这很简单:

MATCH (:User)-[r:RATED]->(movie:Movie)
RETURN movie, AVG(r.rating) AS avg_rating;
假定的数据模型具有
User
Movie
节点,以及包含
rating
属性的
RATED
关系


(此外,由于在此数据模型中只有
用户
节点可以对电影进行评分,因此可以将
匹配
模式简化为:
()-[r:RATED]->(电影:电影)
,这将执行得更快。)

感谢您的回答。谢谢。只是一个后续问题。假设评级是动态的,每次我们想要计算平均评级时,评级都会不断变化。所以,我们的想法是,我们每次都从其他数据库获取评分,并动态地将其输入到图形数据库中。这可能吗?每次运行查询时,它都会看到当时提交的所有更改。欲了解更多信息。