node.js - Cypher 查询返回匹配的 Node 和可选关系

标签 node.js neo4j cypher

我正在尝试找到返回所有匹配 Node 及其可能具有的任何关系的最佳方式?

这是我的问题:

我需要返回创建项目的所有用户,所以

match (u : User)-[r:CREATE]->(p: Project) return u, collect(p)

足够简单,但用户还可以有其他关系,我想包含它们或选择检查(返回 true/false)

例如,用户可以有关系 RECOMMEND,我不想受其限制,但如果检查它是否存在并与什么 Node 相关?

理想情况下,我的返回表如下所示:

用户1 - 项目 - 推荐用户

USER2 - PROJECT(S) - NULL(没有人推荐)

最佳答案

OPTIONAL MATCH将匹配模式,如果不存在则返回 null

MATCH (u : User)-[r:CREATE]->(p: Project) 
OPTIONAL MATCH (u)-[:RECOMMEND]->(rec)
RETURN u, collect(p), collect(rec)

关于node.js - Cypher 查询返回匹配的 Node 和可选关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37501051/

相关文章:

javascript - 明确定义全局变量时出现 "globals is not defined"错误

java - 使用 Spring Data neo4j 创建空间索引时出错

java - Spring数据查询转neo4j查询

Neo4J ClientError.Statement.SyntaxError

neo4j - 当reduce()的where条件不再满足时停止Cypher遍历

java - 在 HTTP 模式下,node.js 是否比 Java 具有实质性的性能优势?

node.js - 运行 API 调用时出现 TypeError : schema[parameter]. validateAsync?

node.js - Nodejs 应用程序无法在 Nodeclipse 中运行

neo4j - 使用导入工具将 TSV 数据导入 Neo4j

neo4j - 如何使用条件返回密码中的数据?