首页 文章

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

提问于
浏览
0

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

select * from TableX where ID = 12345;

我查看了最新的Neo4J文档以及众多谷歌搜索,但到目前为止我还是空洞的 . 我确实找到了 keys() 函数,它将在字符串列表中返回属性名称,但这在最好情况下是有用的 . 我想要的是一个将返回道具名称和相应值的查询,如:

name     :  "Lebron"
city     :  "Cleveland"
college  :  "St. Vincent–St. Mary High School"

1 回答

  • 0

    您可能想重读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没有表模式,因此您可以在相同类型的节点上使用您想要的任何属性,并且这些属性可以在相同类型的节点之间有所不同,因此没有共同的结构引用将提供给定标签的节点的属性(您需要扫描该标签的所有节点并累积不同的属性来执行此操作) .

相关问题