我对cypher非常陌生,只是尝试发起一些简单的查询来使自己定位。立即,我遇到了一个对我来说似乎很奇怪的案子。
请注意,标记为person
的每个节点都具有属性:dateOfBirth
首先询问所有标记为person
的节点,这些节点由标记为Identifier
的节点标识,而节点又是标记为IdentifierClass
的节点的实例。
MATCH (p:person)-[:is_identified_by]->
(id:Identifier)-[:is_instance_of]->(idClass:IdentifierClass)
RETURN p
按预期结果:
p
{
"dateOfBirth": "11/13/2008"
}
{
"dateOfBirth": "11/13/2008"
}
{
"dateOfBirth": "11/13/2008"
}
现在这是我真正想要运行的查询。现在,我们指定IdentifierClass
必须具有值为name
的属性id_type_1
。
MATCH (p:person)-[:is_identified_by]->
(id:Identifier)-[:is_instance_of]->(idClass:IdentifierClass{name:'id_type_1'})
RETURN p
结果:
p
{
}
{
}
{
}
因此返回了相同数量的结果,但是现在无法访问p
的属性。为什么加上这种额外的特异性会导致变量p
“上游”发生变化?
答案 0 :(得分:0)
此问题已解决。该查询运行良好,实际上,图中有意外数据导致了这些结果。几个“人”节点缺少属性。