【发布时间】:2016-02-14 16:23:49
【问题描述】:
我有一个端点getAlbumsByUserId,正如您想象的那样,它返回用户创建的所有专辑。
我的查询工作正常,它返回正确的节点:
"MATCH (u:User "+user+")",
"MATCH (m:User {uuid: '"+userId+"'})",
"OPTIONAL MATCH (m)-[:CREATED]->(n:Asset:Album)<-[r:CAN_READ]-()<-[:BELONGS_TO]-(u)",
"RETURN DISTINCT collect(n) AS nodes, collect(m) AS user",
"UNION",
"MATCH (m:User {uuid: '"+userId+"'})",
"OPTIONAL MATCH (i:User "+user+")-[f:CREATED]->(n:Asset:Album)",
"RETURN DISTINCT collect(n) AS nodes, collect(m) AS user"
此查询的作用是查找用户(m) 可以创建的所有Albums 以及用户(u) 根据其与可以读取Album 的角色的关系可以读取的内容
因为从User 到Album 没有直接的:CAN_READ 关系,而且不是每个Album 都可以被Role 读取,我还需要检查具有:CREATED 关系的专辑发出请求的User。
有没有简单的方法来检查
"MATCH (m:User {uuid: '"+userId+"'})"
在运行其余查询之前存在,以便我有一个有用的响应告诉控制器/用户?
【问题讨论】: