我发现了关于检查no outgoing relationships of a given label exist on a node和this one for checking the count of outgoing relationships with a given property的问题,但我需要做的是获取不有关系的节点给定的属性设置。我相信我让自己变得更难了!
到目前为止我所拥有的是:
MATCH (n:Node)-[r:WEIGHTING]->()
WHERE NOT(ANY(rel IN r WHERE EXISTS(r.PROP)))
RETURN z
但是,显然,此时r
是一个单一的关系,而不是关系的集合。我想我需要涉及一个WITH
条款,但我非常不自觉!
如何获取Node
个没有WEIGHTING
属性PROP
关系的>>> x = '<foo width="150" height="108">'
>>> import re
>>> y = re.sub(r'width="[0-9]{2,4}"','width="400"',x)
>>> y
'<foo width="400" height="108">'
个?
我希望这个细节足够 - 抱歉,如果不清楚的话!
非常感谢, 汤姆
答案 0 :(得分:1)
你可以这样做:
MATCH (n:Node)-[r:WEIGHTING]->()
WITH n, collect(r.PROP) AS props
WHERE size(props) = 0
RETURN n
或者:
MATCH (n:Node)-[r:WEIGHTING]->()
WITH n, collect(r) AS rs
WHERE NONE ( x IN rs WHERE EXISTS(x.PROP) )
RETURN n
答案 1 :(得分:1)
使用Neo4j,往往有几种方法可以满足您的需求。一个备用查询可能是:
MATCH (n:Node)
// only need the next WHERE clause if a WEIGHTING relationship is required
WHERE SIZE((n)-[:WEIGHTING]->()) > 0
OPTIONAL MATCH (n)-[r:WEIGHTING]->()
WHERE EXISTS (r.PROP)
WITH n
WHERE r is null
RETURN n