Neo4j Cypher:在WHERE子句中查找与数组Node属性的完全匹配

时间:2012-08-29 05:23:41

标签: neo4j cypher

给定具有数组属性的Neo4J节点,如何创建Cypher查询以仅返回与数组文字匹配的节点?

使用控制台我创建了一个名为“list”的数组属性的节点:

neo4j-sh (0)$ create n = {list: [1,2,3]};
==> +-------------------+
==> | No data returned. |
==> +-------------------+
==> Nodes created: 1
==> Properties set: 1
==> 83 ms

neo4j-sh (0)$ start n=node(1) return n;
==> +-----------------------+
==> | n                     |
==> +-----------------------+
==> | Node[1]{list:[1,2,3]} |
==> +-----------------------+
==> 1 row
==> 1 ms

但是,在给定与数组文字匹配的WHERE子句的情况下,我的查询不会返回刚刚创建的Node:

neo4j-sh (0)$ start n=node(1) where n.list=[1,2,3] return n;
==> +---+
==> | n |
==> +---+
==> +---+
==> 0 row
==> 0 ms

我完全有可能误用Cypher。有关在Cypher中进行精确数组属性匹配的任何提示都会有所帮助。

2 个答案:

答案 0 :(得分:6)

控制台始终运行Neoj4的最新SNAPSHOT版本。该版本指的是Cypher Syntax parswer,我们将更清楚地指出:)

现在,对Cypher中的数组处理进行了一些修复,请参阅https://github.com/neo4j/community/pull/815https://github.com/neo4j/community/issues/818,其中可能是使控制台正常工作的问题。这已经在1.8.M07之后合并,所以为了让它在本地工作,请下载最新的1.8.-SNAPSHOT之一,从GITHUB构建或等待即将到期的1.8.M08。

/彼得

答案 1 :(得分:3)

您使用的是哪个版本的Neo4j?

您的相同代码适用于1.8M07。

http://console.neo4j.org/?id=p9cy6l

更新的 我通过Web客户端在本地安装中得到相同的结果(没有结果)。也许这是一个Web客户端问题?