Neo4j:查找具有包含字符串的属性名称的节点(在属性名称中,而不是在属性值中)

Neo4j:查找具有包含字符串的属性名称的节点(在属性名称中,而不是在属性值中),neo4j,cypher,Neo4j,Cypher,是否有方法查找具有特定字符串的属性的所有节点? 例如,这里有“ID”: (这不起作用) 谢谢 这只会给你钥匙 MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") RETURN n, KEYS(n) AS myKeys 这将只提供值 MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") RETURN n, [x IN KEYS(n) WHERE x =~".*ID" | n[x]] AS myVa

是否有方法查找具有特定字符串的属性的所有节点?
例如,这里有“ID”:

(这不起作用)


谢谢

这只会给你钥匙

MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") RETURN n, KEYS(n) AS myKeys

这将只提供值

MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") 
RETURN n, [x IN KEYS(n) WHERE x =~".*ID" | n[x]] AS myValues
MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") 
WITH n, [x IN KEYS(n) WHERE x =~".*ID" | x] AS myKeys
RETURN id(n) AS nodeId, apoc.map.submap(n, myKeys) as submap
如果您有apoc,这将为您提供键和值

MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") 
RETURN n, [x IN KEYS(n) WHERE x =~".*ID" | n[x]] AS myValues
MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") 
WITH n, [x IN KEYS(n) WHERE x =~".*ID" | x] AS myKeys
RETURN id(n) AS nodeId, apoc.map.submap(n, myKeys) as submap

这只会给你钥匙

MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") RETURN n, KEYS(n) AS myKeys

这将只提供值

MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") 
RETURN n, [x IN KEYS(n) WHERE x =~".*ID" | n[x]] AS myValues
MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") 
WITH n, [x IN KEYS(n) WHERE x =~".*ID" | x] AS myKeys
RETURN id(n) AS nodeId, apoc.map.submap(n, myKeys) as submap
如果您有apoc,这将为您提供键和值

MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") 
RETURN n, [x IN KEYS(n) WHERE x =~".*ID" | n[x]] AS myValues
MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") 
WITH n, [x IN KEYS(n) WHERE x =~".*ID" | x] AS myKeys
RETURN id(n) AS nodeId, apoc.map.submap(n, myKeys) as submap

极好的!非常感谢。我返回n{.*}。你知道有没有办法只返回x属性的值?看起来n.x不承认x是属性。我很高兴它有帮助!我编辑了我的答案,给你一些不同的选择。太棒了!非常感谢。我返回n{.*}。你知道有没有办法只返回x属性的值?看起来n.x不承认x是属性。我很高兴它有帮助!我编辑了我的答案,给你一些不同的选择。