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
Neo4j 如何将关系数据设置为节点上的属性?_Neo4j_Cypher_Graph Databases - Fatal编程技术网

Neo4j 如何将关系数据设置为节点上的属性?

Neo4j 如何将关系数据设置为节点上的属性?,neo4j,cypher,graph-databases,Neo4j,Cypher,Graph Databases,我已经实现了从SQL到Neo4j的飞跃。作为构建推荐引擎的第一步,我需要将一些复杂的关系设置为节点上的属性 此Cypher查询返回类别和权重的列表 MATCH(m:Movie{name:“矩阵”})(c:Category)返回c.name,avg(r.weight) 这是回报 {“战斗”:0.334,“情绪低落”:0.250,“躺下”:0.237} 如何在父节点上将这些结果设置为键值对? 预期的结果是: (m:Movie{“name”:“矩阵”,“战斗”:0.334,“看起来情绪化”:0.250

我已经实现了从SQL到Neo4j的飞跃。作为构建推荐引擎的第一步,我需要将一些复杂的关系设置为节点上的属性

此Cypher查询返回类别和权重的列表

MATCH(m:Movie{name:“矩阵”})(c:Category)返回c.name,avg(r.weight)

这是回报

{“战斗”:0.334,“情绪低落”:0.250,“躺下”:0.237}

如何在父节点上将这些结果设置为键值对?

预期的结果是:

(m:Movie{“name”:“矩阵”,“战斗”:0.334,“看起来情绪化”:0.250,“躺下”:0.237})


另外,我假设我应该分批处理我的(m:Movie)节点,那么实现这一点的最佳方法是什么?

不太确定您是如何获得输出的,该返回不应该将它们作为键值对返回。相反,我希望像这样的东西:
{“c.name”:“fighting”,“avg(r.weight)”:0.334}
,每对都有单独的记录

您可能需要这样做,因为您需要将属性键设置为类别名称的值的方法。这有点棘手,但您可以通过从收集的对创建一个映射来完成,然后使用SET with+=更新相关属性:

MATCH (m:Movie {name: "The Matrix"})<-[:TAKEN_FROM]-(:Image)-[r:CLASSIFIED_AS]->(c:Category) 
WITH m, c.name as name, avg(r.weight) as weight
WITH m, collect([name, weight]) as category
WITH m, apoc.map.fromPairs(category) as categories
SET m += categories
CALL apoc.periodic.iterate(
 "MATCH (m:Movie)
 RETURN m",
 "MATCH (m)<-[:TAKEN_FROM]-(:Image)-[r:CLASSIFIED_AS]->(c:Category) 
  WITH m, c.name as name, avg(r.weight) as weight
  WITH m, collect([name, weight]) as category
  WITH m, apoc.map.fromPairs(category) as categories
  SET m += categories",
{iterateList:true, parallel:false}) YIELD total, batches, errorMessages
RETURN total, batches, errorMessages