关于Neo4js中GUID的匹配

时间:2015-05-25 06:55:09

标签: neo4j cypher

我从MS SQL将CSV转储导入Neo4j。其中一个节点有一个GUID作为主键,但是当我尝试进行匹配时,虽然行在那里但我没有得到任何结果。

我尝试了以下查询:

MATCH (n:User) where n.UserId = "006cbcc9-7452-4bd3-a1da-c9f96fb15ff9"  RETURN n LIMIT 25

结果是:

Returned 0 rows in 11 ms.

但是当我在这个特定用户的名字上运行查询时,我得到一个结果:

MATCH (n:User) where n.FirstName = "Bob"  RETURN n LIMIT 25

如您所见,UserId与我试图找到的匹配:

UserId      006cbcc9-7452-4bd3-a1da-c9f96fb15ff9
FirstName   Bob
LastName    The Builder

那么我的查询应该按UserId匹配?

1 个答案:

答案 0 :(得分:2)

我可以看到两个可能的原因:

1)您在属性值中有一些隐藏字符来验证这一点,运行:

MATCH (n:User) where n.FirstName = "Bob"  
RETURN n.UserId, n.UserId='006cbcc9-7452-4bd3-a1da-c9f96fb15ff9', 
       n.FirstName, n.LastName 
LIMIT 25

在第二列中返回false,然后您的UserId中可能还有其他一些隐形字符。

2)远不太可能:假设您对:UserUserId有唯一约束。也许 - 出于一个奇怪的原因 - 您的索引已损坏。尝试删除它并重新创建它。