Neo4J:检查列表元素是否在匹配的节点中出现

时间:2018-07-16 13:22:59

标签: python neo4j cypher py2neo

我的Neo4j查询无法正常工作-我还不太清楚为什么。

match (entry:Entry)
with split("\some space delimited string", " ") as i, 
split("\some space delimited string", " ") as j

where (any (x in entry.X.list where x in i) and any(y in entry.Y.list 
where y in j) and entry.parent="test_1.csv")
return entry

“入口”节点的属性由X,Y和Z参数组成。

我正在尝试使用py2neo将列表的2个字符串表示形式传递到密码查询中,过滤在某些坐标系中(即,条目的X值)包含2个列表的任何元素的交集的节点节点具有列表'i'中的元素,入口节点的Y具有列表'j'中的元素)-然后返回条目。

但是,当我在Neo4J浏览器中运行查询时,它告诉我未定义变量“ entry”。

1 个答案:

答案 0 :(得分:2)

WITH子句(除其他外)用于重新定义范围内的变量。由于您没有在WITH子句中包含entry,因此它超出了范围,因此您无法在该点之后使用它,因此会出现错误。

要解决此问题,只需在WITH子句中添加entryij

...
with entry, split("\some space delimited string", " ") as i, 
split("\some space delimited string", " ") as j
...