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 检查节点是否存在,然后在neo4j中继续其余的查询_Graph_Neo4j_Cypher - Fatal编程技术网

Graph 检查节点是否存在,然后在neo4j中继续其余的查询

Graph 检查节点是否存在,然后在neo4j中继续其余的查询,graph,neo4j,cypher,Graph,Neo4j,Cypher,我有一个端点getAlbumsBySerid,可以想象,它返回用户创建的所有相册 我让查询工作,它返回正确的节点: "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

我有一个端点
getAlbumsBySerid
,可以想象,它返回用户创建的所有相册

我让查询工作,它返回正确的节点:

"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"
“匹配(u:User”+User+”,
“匹配(m:User{uuid:'”+userId+“})”,
“可选匹配(m)-[:CREATED]->(n:Asset:Album)首先,我希望使用而不是将数据直接连接到字符串中,以防止注入攻击

我认为您需要将前两个
MATCH
子句合并为一个:

MATCH (u:User {uuid: {userId}}), (m:User {uuid: {currentUserId}})
这意味着,只有找到该子句中的所有内容,才能得到匹配项

另见

如果这不起作用,您可以首先获取当前用户有权访问的所有相册,然后与给定用户进行匹配(简化查询):

首先,我希望使用而不是将数据直接连接到字符串中,以防止注入攻击

我认为您需要将前两个
MATCH
子句合并为一个:

MATCH (u:User {uuid: {userId}}), (m:User {uuid: {currentUserId}})
这意味着,只有找到该子句中的所有内容,才能得到匹配项

另见

如果这不起作用,您可以首先获取当前用户有权访问的所有相册,然后与给定用户进行匹配(简化查询):