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 如何使用Cypher返回节点的所有属性?_Graph_Neo4j_Cypher - Fatal编程技术网

Graph 如何使用Cypher返回节点的所有属性?

Graph 如何使用Cypher返回节点的所有属性?,graph,neo4j,cypher,Graph,Neo4j,Cypher,我理解可以使用通配符(*)符号返回密码查询中的所有引用,例如: MATCH p:Product WHERE p.price='1950' RETURN *; ==> +----------------------------------------------------------------+ ==> | p | ==> +--------

我理解可以使用通配符(*)符号返回密码查询中的所有引用,例如:

MATCH p:Product WHERE p.price='1950' RETURN *;

  ==> +----------------------------------------------------------------+
  ==> | p                                                              |
  ==> +----------------------------------------------------------------+
  ==> | Node[686]{title:"Giorgio Armani Briefcase",price:"1950",...    |
  ==> +----------------------------------------------------------------+
但是,结果是一行中有一个名为“p”的节点“列”,可以从中访问属性。但是,我希望结果集“rows”的属性名为“columns”。比如:

MATCH p:Product WHERE p.price='1950' RETURN p.*;

  ==> +-------------------------------------------+
  ==> | title | price | ...                       |
  ==> +-------------------------------------------+
  ==> | "Giorgio Armani Briefcase" | "1950" | ... |
  ==> +-------------------------------------------+

该特定查询无效,但是否有方法实现相同的结果(除了明确列出所有属性,如p.title、p.price、p…)?

您可以使用'as'子句并标识每个属性以及希望列命名的内容。不过,您必须确定要单独返回的每个属性

例:


你还不能用Cypher做这件事。我认为这将是一个很好的功能,虽然,如果你想要求它

编辑(感谢您的点评): 现在,您可以从2.2开始执行此操作:

MATCH (p:Product) WHERE p.price='1950' RETURN keys(p);

我不熟悉cypher,但它似乎会返回特定类型节点的所有密钥:

MATCH (p:product) RETURN keys(p)

在Neo4J 3.0中工作

只需展开获取密钥的步骤:

MATCH (p:product) WITH DISTINCT keys(p) AS keys
UNWIND keys AS keyslisting WITH DISTINCT keyslisting AS allfields
RETURN allfields;

在最新版本的cypher
properties(n)
将返回节点的所有键和属性。但似乎只适用于单个节点


我希望这对人们有所帮助。

您可以在cypher查询中返回
n
,它将返回节点的所有键和属性。 如。:
匹配(n:People)n

这将返回
n:
{
“出生日期”:“1981-04-23 00:00:00”,
“员工姓氏”:“Aaaa”,
“员工姓名”:“Baaa”,
“年龄”:36岁,
“员工状态”:“活动”

}

谢谢你的提示。碰巧,我的代码是生成的,因此生成器静态地知道属性名称,我让它生成类似这样的内容-尽管使用
p.price?作为'nullable'(不存在)属性的price
。看起来是这样的:您可以使用2.2中引入的
keys
函数获得一组键,但是无法使用动态字符串键访问属性,正如这里所问的:(您2015年对此答案的更新很混乱。
keys()
不符合此问题的要求;您的原始答案仍然正确,您的编辑只会增加混乱。抱歉@MarkAmery--我明白您的意思。(2年后,:/)只需执行
匹配(n:People)n
即可为您提供所有属性
MATCH (p:product) WITH DISTINCT keys(p) AS keys
UNWIND keys AS keyslisting WITH DISTINCT keyslisting AS allfields
RETURN allfields;