我们正在为未来的项目评估Neo4J . 目前正在尝试学习Cypher及其功能 . 但到目前为止,我认为应该非常简单的一件事是我 . 我希望能够查看任何给定节点的所有属性及其值 . 在SQL中,它将是这样的:
select * from TableX where ID = 12345;
我查看了最新的Neo4J文档以及众多谷歌搜索,但到目前为止我还是空洞的 . 我确实找到了 keys()
函数,它将在字符串列表中返回属性名称,但这在最好情况下是有用的 . 我想要的是一个将返回道具名称和相应值的查询,如:
name : "Lebron"
city : "Cleveland"
college : "St. Vincent–St. Mary High School"
1 回答
您可能想重读Neo4j文档 .
返回节点本身将包括节点的属性映射,这通常是获取节点的所有属性(键和值)的方式 .
如果您明确只需要属性但没有与节点本身相关的元数据,则返回
properties(n)
(假设n
是节点变量)将返回节点的属性 .关于列(变量)如何工作,这些都是显式的,因此您无法动态获取与节点属性对应的列 . 您将需要使用上面的方法,其中变量对应于节点(您可以通过结构获取属性映射)或属性映射 .
这种方法与SQL中的
select *
之间的主要区别在于Neo4j没有表模式,因此您可以在相同类型的节点上使用您想要的任何属性,并且这些属性可以在相同类型的节点之间有所不同,因此没有共同的结构引用将提供给定标签的节点的属性(您需要扫描该标签的所有节点并累积不同的属性来执行此操作) .