我有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界面显示上述两个语句输出的方式有细微差别,但值得一试!