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;