neo4j:CYPHER查询节点的所有属性

neo4j:CYPHER查询节点的所有属性,neo4j,cypher,Neo4j,Cypher,我们正在为未来的项目评估Neo4J。目前,我们只是在尝试学习Cypher及其功能。但有一件事我认为应该非常简单,但到目前为止我一直没有做。我希望能够看到任何给定节点的所有属性及其值。在SQL中,这类似于: 从表x中选择*,其中ID=12345; 我已经浏览了最新的Neo4J文档和大量的Google搜索,但到目前为止我还是一无所获。我确实找到了keys()函数,该函数将返回字符串列表中的属性名称,但充其量也没什么用处。我想要的是一个查询,它将返回属性名称和相应的值,如: 名称:“勒布朗” 城市:

我们正在为未来的项目评估Neo4J。目前,我们只是在尝试学习Cypher及其功能。但有一件事我认为应该非常简单,但到目前为止我一直没有做。我希望能够看到任何给定节点的所有属性及其值。在SQL中,这类似于:

从表x中选择*,其中ID=12345;
我已经浏览了最新的Neo4J文档和大量的Google搜索,但到目前为止我还是一无所获。我确实找到了
keys()
函数,该函数将返回字符串列表中的属性名称,但充其量也没什么用处。我想要的是一个查询,它将返回属性名称和相应的值,如:

名称:“勒布朗”
城市:“克利夫兰”
学院:“圣文森特-圣玛丽高中”

您可能需要重新阅读Neo4j文档

返回节点本身将包括节点的属性映射,这通常是获取节点所有属性(键和值)的方式

MATCH (n)
WHERE id(n) = 12345
RETURN n
如果明确只需要属性,但不需要与节点本身相关的元数据,则返回
properties(n)
(假设
n
是节点变量)将返回节点的属性

MATCH (n)
WHERE id(n) = 12345
RETURN properties(n) as props
关于列(变量)的工作方式,这些列始终是显式的,因此您无法动态获取与节点属性对应的列。相反,您需要使用上面的方法,其中变量对应于节点(您可以通过结构在属性映射处获得)或属性映射

这种方法与SQL中的
select*
之间的主要区别在于,Neo4j没有表模式,因此您可以在相同类型的节点上使用所需的任何属性,而这些属性在相同类型的节点之间可能有所不同,因此没有可供参考的公共结构来为给定标签的节点提供属性(您需要扫描该标签的所有节点,并累积不同的属性以执行此操作)