Neo4j:类似的查询,一个工作,一个失败,出现“NotFoundException:Unknown identifier”

时间:2013-10-28 10:35:45

标签: neo4j cypher

我的客户端传递给我的Neo4j持久层的是集合对,我必须查找具有与这些对相对应的属性的节点。这是我提出的查询,它似乎工作(如:它返回我的测试用例的预期结果):

START root=node(0)
MATCH (root)-[:HAS_IDENTITY_PROVIDER]->(ip)<-[:IDENTITY_PROVIDER]-(claim)<-[:CLAIM]-(user)
WHERE [ip.Name, claim.IdentityProviderId] in [['facebook', 'f111'], ['facebook', 'f222'], ['facebook', 'f333'], ['twitter', 't444'], ['facebook', 'f555']]
RETURN user.Id AS Id, user.FirstName AS FirstName, user.LastName AS LastName, user.Avatar AS Avatar, count(*) AS Score
ORDER BY Score desc, FirstName, LastName;

现在我正在尝试编写另一个遵循类似方法的查询,但它失败了"NotFoundException: Unknown identifier 'user'

START root=node(0)
MATCH (root)-[:HAS_USER]->(user)
WHERE [user.FirstName, user.LastName] in [['Alice', 'Apple']]
RETURN user.Id AS Id, user.FirstName AS FirstName, user.LastName AS LastName, user.Avatar AS Avatar;

它抱怨user条款中的WHERE

为什么第一个工作,第二个不工作?我无法发现它们之间的显着差异。

(另外,我不知道这种方法是否被视为某种黑客,或者如果有更好/更清洁/更快的方法来实现这一点,我总是愿意接受建议。)

谢谢!

0 个答案:

没有答案