我从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
匹配?
答案 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)远不太可能:假设您对:User
和UserId
有唯一约束。也许 - 出于一个奇怪的原因 - 您的索引已损坏。尝试删除它并重新创建它。