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 - Fatal编程技术网

neo4j中的格式返回:按项分组

neo4j中的格式返回:按项分组,neo4j,cypher,Neo4j,Cypher,我使用以下密码获取标签用户的所有实体: MATCH (u:User) OPTIONAL MATCH (u)-[r:RATED]->(m:Movie) WITH u,r,m RETURN u.id as uid, m.id as mid, r.rating as rating 这将返回一个对象数组,其格式如下: [ { "uid": "user1", "mid": "bettercallsaul", "rating": 9 },

我使用以下密码获取标签用户的所有实体:

MATCH (u:User)
OPTIONAL MATCH (u)-[r:RATED]->(m:Movie) 
WITH u,r,m
RETURN u.id as uid, m.id as mid, r.rating as rating
这将返回一个对象数组,其格式如下:

[
    {
      "uid": "user1",
      "mid": "bettercallsaul",
      "rating": 9
    },
    {
      "uid": "user1",
      "mid": "breakingbad",
      "rating": 10
    }
    // ... etc
]
但是,我想按
u.id
(或
uid
)对其进行分组,以便它返回类似(或类似)的内容:


我想您正在寻找COLLECT()函数

也许可以尝试以下查询:

MATCH (u:User)
OPTIONAL MATCH (u)-[r:RATED]->(m:Movie) 
RETURN u.id,COLLECT({mid:m.id, rating:r.rating}) as movieRatings
如果您使用的是Neo4j 3.1.x或更高版本,则可以使用模式理解和地图投影来简化:

MATCH (u:User)
RETURN u.id as user, 
  [(u)-[r:RATED]->(m:Movie) | m {.id, rating:r.rating}] as movieRatings
如果希望MovieRating列表成为每个用户属性地图的一部分,也可以使用地图投影来完成此操作:

MATCH (u:User)
RETURN u {.id, .name, movieRatings:
  [(u)-[r:RATED]->(m:Movie) | m {.id, rating:r.rating}] } as user

我想您正在寻找COLLECT()函数

也许可以尝试以下查询:

MATCH (u:User)
OPTIONAL MATCH (u)-[r:RATED]->(m:Movie) 
RETURN u.id,COLLECT({mid:m.id, rating:r.rating}) as movieRatings
如果您使用的是Neo4j 3.1.x或更高版本,则可以使用模式理解和地图投影来简化:

MATCH (u:User)
RETURN u.id as user, 
  [(u)-[r:RATED]->(m:Movie) | m {.id, rating:r.rating}] as movieRatings
如果希望MovieRating列表成为每个用户属性地图的一部分,也可以使用地图投影来完成此操作:

MATCH (u:User)
RETURN u {.id, .name, movieRatings:
  [(u)-[r:RATED]->(m:Movie) | m {.id, rating:r.rating}] } as user

我不知道是否完全有可能做你想做的事。 不过我想你会接近尼奥的


我不知道是否完全有可能做你想做的事。 不过我想你会接近尼奥的

这些都是相关的问题。使用普通密码,您无法动态地将密钥分配给映射(例如示例中的“user1”)。您可以使用类似“配对”的列表或。这些是相关的问题。使用普通密码,您无法动态地将密钥分配给映射(例如示例中的“user1”)。您可以使用“配对”列表或。