匹配具有包含特定值的Array属性的节点

时间:2017-05-01 12:45:27

标签: neo4j cypher

我有User类型的节点,它有一个名为'电子邮件'的数组属性。包含一系列电子邮件(字符串)。我正在尝试编写一个密码查询,可用于查找与特定电子邮件地址匹配的节点(换句话说 - 给定一个电子邮件地址,我想查找其中包含该电子邮件地址的所有节点。电子邮件'属性。

MATCH(u:User) WHERE 'abc@gmail.com' IN u.emails RETURN u;

但是,上面的查询什么都不返回。我已经确认我有一个包含该属性的节点,见下文:

u

id  ed2ac321-60e3-4765-95b6-b097726454bf
emails  ["abc@gmail.com"]

不确定我在这里失踪了什么。

编辑:由于stdob发布的问题,我发现了这个问题。我正在正确创建数组 - 我正在使用这样的引号:

CREATE (u:User {id: 'ed2ac321-60e3-4765-95b6-b097726454bf', emails: '["abc@gmail.com"]'}) RETURN u;

输出:     ü     电子邮件[" abc@gmail.com"]     id ed2ac321-60e3-4765-95b6-b097726454bf

这内部创建了一个名为emails的简单字符串属性,而不是数组。为了解决这个问题,我删除了引号:

CREATE (u:User {id: 'ed2ac321-60e3-4765-95b6-b097726454bf', emails: ["abc@gmail.com"]}) RETURN u;

输出:     ü     电子邮件[abc@gmail.com]     id ed2ac321-60e3-4765-95b6-b097726454bf

neo4j web界面显示上述两个语句输出的方式有细微差别,但值得一试!

0 个答案:

没有答案